[英]laravel 5.1 - rewrite url variable in middleware then pass new value to additional middleware and controller
我希望在中間件中操作url變量,然后將新的vaule傳遞給其他中間件進行檢查,然后將新值傳遞給控制器
任意示例: domain.com/1
->
中間件加3到1- ->
中間件對照數據庫檢查新編號4
->
將新編號傳遞給控制器
我的路線:
Route::get('{v}', [
'middleware' => ['rewrite','dbCheck'],
'uses' => 'video@search'
]);
我使用$v = $request->v;
在中間件中獲取變量$v = $request->v;
- 如何將重寫的變量返回到下一個中間件,最后返回到控制器?
我嘗試過使用$request['v'] = $v;
重置變量$request['v'] = $v;
沒有喜悅
每次您嘗試從Request對象讀取一個值時,它都會合並所有可用的數據源(POST / GET數組,查詢字符串,路由參數),並從合並結果中獲取該值。 因此,如果您想修改在嘗試從“請求”中獲取值時將返回的值,則需要修改的不是源請求對象,而是源代碼。
在您的情況下,您想修改route參數的值-以下代碼將為您工作:
$request->route()->setParameter('v', $request->v + 3);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.