laravel 5.1 - 在中间件中重写url变量,然后将新值传递给其他中间件和控制器

时间:2015-12-05 19:25:01

标签: php laravel laravel-5 laravel-5.1 middleware

我希望在中间件中操作url变量然后将新的vaule传递给一些额外的中间件进行检查,然后将新值传递给控制器​​

任意示例:domain.com/1 ->中间件,用于添加3对1 ->中间件,以针对数据库4检查新号码->,将新号码传递给控制器​​< / p>

我的路线:

Route::get('{v}', [
        'middleware' => ['rewrite','dbCheck'],
        'uses' => 'video@search'
    ]);

我使用$v = $request->v;获取中间件中的变量 - 如何将重写的变量返回到下一个中​​间件并最终返回控制器?

我之后尝试使用$request['v'] = $v;重置变量,没有欢乐

1 个答案:

答案 0 :(得分:2)

每次尝试从Request对象读取值时,它都会合并所有可用的数据源(POST / GET数组,查询字符串,路由参数),并从合并结果中获取值。因此,如果要修改尝试从请求中获取它时将返回的值,则需要修改请求对象,而不是源。

在您的情况下,您想修改route参数的值 - 以下代码适用于您:

float