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 相关文章推荐
轻松修复Discuz!数据库
May 03 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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
session 的生命周期是多长
2006/10/09 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
python爬虫实例详解
2018/06/19 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
应届生程序员求职信
2013/11/05 职场文书
初三学习计划书范文
2014/04/30 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
信用卡工资证明范本
2014/10/17 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
Python多线程 Queue 模块常见用法
2021/07/04 Python
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技