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读取3389的脚本
May 06 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
ThinkPHP分页实例
Oct 15 PHP
PHP合并静态文件详解
Nov 14 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 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
用php来检测proxy
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python调用百度语音识别api
2018/08/30 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python读取stdin方法实例
2019/05/24 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
酒店员工职业生涯规划
2014/02/25 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书