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项目打包方法
Feb 18 PHP
php数组删除元素示例
Mar 21 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
PHP生成随机数的方法总结
Mar 01 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 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中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
详解Python 循环嵌套
2020/07/09 Python
numba提升python运行速度的实例方法
2021/01/25 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
库房主管岗位职责
2013/12/31 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
会计实训报告范文
2014/11/04 职场文书
情人节活动总结范文
2015/02/05 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL