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 相关文章推荐
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP微商城开源代码实例
Mar 27 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
解决php extension 加载顺序问题
Aug 16 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
详解python实现线程安全的单例模式
2018/03/05 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
python 实现list或string按指定分段
2019/12/25 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
数控技术应届生求职信
2013/11/13 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
七年级作文之下雨天
2019/12/23 职场文书
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android