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程序
Oct 09 PHP
php 获取客户端的真实ip
Nov 30 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
php多重接口的实现方法
Jun 20 PHP
用PHP代码给图片加水印
Jul 01 PHP
CI框架中$this->load->library()用法分析
May 18 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
js实现拖拽功能
2017/03/01 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
图解JS原型和原型链实现原理
2020/09/15 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python字符串常用方法
2018/06/14 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
2014年网管工作总结
2014/12/11 职场文书
2015新学期开学寄语
2015/02/26 职场文书
社区干部培训心得体会
2016/01/06 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android