簡體   English   中英

laravel 5.1-在中間件中重寫url變量,然后將新值傳遞給其他中間件和控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM