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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
php 获取完整url地址
Dec 20 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
php按单词截取字符串的方法
Apr 07 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 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创建PDF中文文档
2006/10/09 PHP
php curl选项列表(超详细)
2013/07/01 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
自己动手封装一个React Native多级联动
2018/09/19 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
用Python抢过年的火车票附源码
2015/12/07 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
python实现滑雪者小游戏
2020/02/22 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
2015年外联部工作总结
2015/04/03 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
家属联谊会致辞
2015/07/31 职场文书
小学体育课教学反思
2016/02/16 职场文书