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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
dedecms系统常用术语汇总
Apr 03 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
PHP函数篇之掌握ord()与chr()函数应用
Dec 05 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 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学习笔记之二
2011/01/17 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Python函数中定义参数的四种方式
2014/11/30 Python
进一步了解Python中的XML 工具
2015/04/13 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
python绘制动态曲线教程
2020/02/24 Python
python实现井字棋小游戏
2020/03/04 Python
python制作抽奖程序代码详解
2021/01/15 Python
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
Python socket如何解析HTTP请求内容
2022/02/12 Python
Oracle 触发器trigger使用案例
2022/02/24 Oracle