假設以下路線在Laravel 5.5 API:如何將不帶參數的Laravel路由重定向到具有默認參數的控制器方法?
// custom routes for THIS user (the user making the request)
Route::get('/user', '[email protected]');
Route::get('/user/edit', '[email protected]');
// register CRUDdy resource routes for users
Route::resource('users', 'UserController');
讓我們用edit
爲例:
public function edit(User $user)
{
...
}
正如你所看到的,編輯路由包含類型暗示$user
參數。正如預期的那樣,這對users/13/edit
路線很好。但是,我會配置路徑/user/edit
以將$request->user()
用戶對象傳遞給該函數。我不想檢查中的用戶對象實際的edit
方法,因爲這可能會干擾其他驗證(例如,如果有人傳遞不存在的用戶ID,我不想默認當前用戶,我想在這種情況下返回一個錯誤)。
總之:如何註冊一個路由來首先創建一個參數,然後將它傳遞給給定的控制器方法?我首先想到的是使用一個封閉:
Route::get('/user/edit', function(Request $request){
$user = $request->user();
});
但一旦瓶蓋內,我不能確定如何再進行請求轉發到適當的控制方法。
你確定是由工匠產生這個功能就像使用'--resource'標籤 –
是的,資源路線是由工匠產生的。我想添加額外的路線,就像我在問題中所說的那樣。 – CGriffin