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数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 PHP
PHP执行普通shell命令流程解析
Aug 24 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php上传文件的增强函数
2010/07/21 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
Python中functools模块函数解析
2017/03/12 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
DBA的职责都有哪些
2012/05/16 面试题
药物学专业学生的自我评价
2013/10/27 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
制作部班长职位说明书
2014/02/26 职场文书
财务主管岗位职责
2014/02/28 职场文书
搞笑创意广告语
2014/03/17 职场文书
个人简历自荐信
2014/06/26 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
企业授权委托书范本
2014/09/22 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
长城导游词400字
2015/01/30 职场文书
格列佛游记读书笔记
2015/06/30 职场文书