2017-05-10 91 views
2

我是Laravel世界的新手(使用5.0),我正在學習如何路線。 我有這條路線Laravel 5.0掩蔽路線

Route::get('users/{id}', '[email protected]'); 

UserController

public function showProfile($id) 
    { 
     return view('user.profile', ['user' => User::findOrFail($id)]); 
    } 

一切工作正常,生成的URL是如本地主機:8000 /用戶/ 1。

有可能掩蓋這條路線,而不是像localhost:8000/users/profile之類的東西,使查詢處於隱藏狀態? 謝謝大家

+1

您應該爲** a **用戶和** **用戶使用不同的路由。我的意思是,路由'/ user/profile'應該處理已登錄的用戶,而'/ user/{id}'應該只處理單個用戶,正如該ID所指定的那樣。 –

+0

謝謝您的回覆,我明白了您的觀點。我的問題是,即使是登錄用戶,我不希望他能夠看到他的ID,我的意思是,例如用戶/ 2 – Daitarn

+0

基本上這個號碼是用戶的標識符..如果您希望用它掩蓋你必須通過的配置文件作爲查詢字符串,但我想你不想這樣做,所以你可以提交一個發佈請求給用戶/配置文件,指定所需的參數並在控制器中返回記錄 – RohitS

回答

0

做最簡單的事情是簡單地在認證的用戶拉:

Route::get('users/profile', '[email protected]'); 



public function showProfile() 
{ 
    return view('user.profile', ['user' => Auth::user()]); 
} 
+0

是的,這就是我一直在尋找 – Daitarn

0

您可以檢查$id型。

public function showProfile($id) { 
    if(is_numeric($id)) { 
     return view('user.profile', ['user' => User::findOrFail($id)]); 
    } else { 
     // Profile page. 
     return view('user.profile_page'); 
    } 
}