2015-12-23 169 views
0

我正在爲用戶和管理員構建一個API。Laravel不同的路由相同的控制器

在編輯用戶配置文件路由時遇到困難。

在管理路線我的用戶線路使用Route::resource('user', 'UserController')

我使用Route::get('profile', '[email protected]')

的show方法Laravel默認有

public function show($id) 
{ 

} 

它們之間的不同是管理員,我可以使用/id但在用戶上我從中間件檢查他們的令牌併合並請求以獲得他們的user_id,所以不需要API使用profile/{id}

問題是如何使用相同的方法,但有一個參數來填充和路線仍然/profile


我的一個解決方案是:

public function show($id){ 
    if ($request->has('user_id')): 
     $id = $request->query('user_id'); 
    endif; 
} 

它的工作,但是當我閱讀代碼,它是真正的冗餘總是檢查並更換ID。

+0

我會完全使用不同的方法配置文件。例如,UserController @ showProfile。 – Amarnasan

+0

是的,這是解決方案之一。但功能完全一樣。差別僅在於id。謝謝 – ssuhat

+0

然後讓showProfile獲得該ID並呼叫顯示該ID。 – Amarnasan

回答

0

只需將請求對象作爲參數放置在控制器中,並在使用用戶路由時從請求對象獲取輸入。

謝謝

+0

嗨,謝謝你的回答。如果你不介意,你能舉個例子嗎?謝謝 – ssuhat

+0

http://laravel.com/docs/5.1/requests –

相關問題