2017-09-05 341 views
0

我無法理解如何在Laravel中使用動態參數更改獲取路由。 我必須動態地將公司名稱作爲路由參數的路線,沿着www.page.com/{name_of_company}在Laravel中更改動態獲取路由參數

在我web.php東西線,路線是這樣的:

Route::get('/{company_name}', ['uses' => 'Frontend\[email protected]', 'as' => 'CompanyShow']); 

我現在需要更改{company_name}變量,例如刪除空格,更改某些字符等,所以我打算使用某種類型的str_replace函數,我只需要知道我必須將該函數應用於動態參數,以便使用URL中新「已清除」名稱版本成功調用該參數。 我試圖直接操作獲取路線內的動態變量,我還試圖用中間件,但我不知道該怎麼做到底,所以我在這裏提出的問題,並希望有人有一個想法如何做到這一點...

回答

1

嘗試像this在你的中間件,可以替代這種方式

+0

我嘗試添加你的控制器和中間件說,我能夠改變一個請求參數參數,但它不會在URL頭中更改?它需要在URL標題來更改主要是它不不...這是我的中間件代碼,我得到了公司的ID,並希望將其更改爲公司: COMPANY_NAME = UserMoreInfo ::這裏('na_user_more_info.user_id ',request() - > segment(2)) - > pluck('company_name')[0]; $ request-> merge([ 'id'=> $ company_name ]); // $ request-> route() - > setParameter('id',$ company_name); return $ next($ request); – Benny

+0

試試這個:https://laravel.com/docs/5.4/routing#explicit-binding>自定義解決邏輯 – Quezler

+0

感謝@Quezler,這個工作了!我使用顯式綁定將company_name轉換爲RouteServiceProvider類中的ID,然後將其作爲ID轉發到我的控制器類中! – Benny