• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel在中间件内生成参数并且传递到控制器中的2种姿势

    姿势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')取到值
     }
    }

    下面来看结果:

    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];
     }
    }

    结果:

    merge后$request->input()能获取到所有的参数

    以上这篇laravel在中间件内生成参数并且传递到控制器中的2种姿势就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • laravel利用中间件做防非法登录和权限控制示例
    • 浅谈Laravel中的三种中间件的作用
    • Laravel获取当前请求的控制器和方法以及中间件的例子
    • Laravel框架控制器的middleware中间件用法分析
    • laravel利用中间件防止未登录用户直接访问后台的方法
    • Laravel 6 将新增为指定队列任务设置中间件的功能
    • laravel框架中间件 except 和 only 的用法示例
    • Laravel5.1框架注册中间件的三种场景详解
    • 浅谈laravel中间件的创建思路
    上一篇:laravel 实现划分admin和home 模块分组
    下一篇:laravel通过a标签从视图向控制器实现传值
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    laravel在中间件内生成参数并且传递到控制器中的2种姿势 laravel,在,中间件,内,生成,