laravel在中间件内生成参数并且传递到控制器中的2种姿势


Posted in PHP onOctober 15, 2019

姿势1

使用$request->attributes->add($arr)方法

Demo:

注册中间件这部分就不说了 主要说用法

class MidParams //中间件
{
 public function handle($request, Closure $next)
 {
  $mid_params = ['mid_params'=>'this is mid_params'];
  $request->attributes->add($mid_params);//添加参数

  return $next($request);//进行下一步(即传递给控制器)
 }
}
class MidController extends Controller { //控制器
 public function testMidFunc(Request $request) {
  $input_params = $request->input();//获取参数
  $mid_params = $request->get('mid_params');//中间件产生的参数
  return ['my_params'=>$input_params,
  'mid_params'=>$mid_params];
  //注意:$request->attributes->add这种方法 input()取不到值  只能用get('xxx')取到值
 }
}

下面来看结果:

laravel在中间件内生成参数并且传递到控制器中的2种姿势

my_params是传的参,mid_params是中间件生成的参

姿势2

使用$request->merge($arr)方法

Demo:

class MidParams //中间件
{
 public function handle($request, Closure $next)
 {
  $mid_params = ['mid_params'=>'this is mid_params'];
  $request->merge($mid_params);//合并参数
  return $next($request);
 }
}
class MidController extends Controller { //控制器
 public function testMidFunc(Request $request) {
  $all_params = $request->input();//获取参数
  return ['all_params'=>$all_params];
 }
}

结果:

laravel在中间件内生成参数并且传递到控制器中的2种姿势

merge后$request->input()能获取到所有的参数

以上这篇laravel在中间件内生成参数并且传递到控制器中的2种姿势就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP调用三种数据库的方法(2)
Oct 09 PHP
mysql5写入和读出乱码解决
Nov 25 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
php实现的ping端口函数实例
Nov 12 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
laravel 实现划分admin和home 模块分组
Oct 15 #PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 #PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 #PHP
laravel 自定义常量的两种方案
Oct 14 #PHP
Laravel如何实现自动加载类
Oct 14 #PHP
解决laravel资源加载路径设置的问题
Oct 14 #PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 #PHP
You might like
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHP+DBM的同学录程序(1)
2006/10/09 PHP
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
php模板之Phpbean的目录结构
2008/01/10 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python struct模块解析
2014/06/12 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
酒店出纳岗位职责
2013/12/29 职场文书
餐厅总厨求职信
2014/03/04 职场文书
2014年药房工作总结
2014/11/22 职场文书
学校远程教育工作总结
2015/08/11 职场文书