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 相关文章推荐
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
php基础教程
Aug 26 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP implode()函数用法讲解
Mar 08 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
jquery.validate的使用说明介绍
2013/11/12 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
python使用Apriori算法进行关联性解析
2017/12/21 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
幼儿师范毕业生自荐信
2013/11/09 职场文书
出国留学担保书
2014/05/20 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
文艺节目主持词
2015/07/06 职场文书
Python基础之进程详解
2021/05/21 Python
Redis Stream类型的使用详解
2021/11/11 Redis