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读写文件的方法(生成HTML)
Nov 27 PHP
php下将XML转换为数组
Jan 01 PHP
php 读取文件乱码问题
Feb 20 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
PHP中的self关键字详解
Jun 23 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简单实现多字节字符串翻转的方法
2015/03/31 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP错误机制知识汇总
2016/03/24 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
vue ssr 指南详读
2018/06/29 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
浅谈Python中的数据类型
2015/05/05 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
公务员年终个人总结
2015/02/12 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书