2017-06-05 48 views
-1

所以我有一個路線基本/ {USER_ID}Laravel使用用戶ID

我如何重定向用戶到當他們點擊鏈接該URL?

這裏是我的控制器:

{ 
    function checkid($user_id) { 
     if (Auth::check()) 
     { 
     $user_id = Auth::id(); 
     return view('profile', [ 
     'id' => $user_id 
     ]); 
     } 
    } 
} 
+1

什麼名單?你的控制器在哪裏?在發佈之前,你有沒有證明你的問題? – sisve

+0

misstyped抱歉,它應該說「鏈接」 – Przemek

+0

什麼鏈接?這個問題中沒有任何鏈接。也沒有控制器。 – sisve

回答

2

與問題混淆的地方,但Laravel使用ID作爲依賴注入的默認值,並且更改它很簡單:只需在模型中更改模型中的routeKey,但您使用的是登錄用戶。所以忘了ID!

<?php 

    namespace App\Http\Controllers; 

    class RandomController extends Controller { 
     public function index() 
     { 
      return view('profile');//use auth facade in blade. 
     } 
    } 

在你的路由使用中間件,以防止沒有經過驗證的用戶到達這個方法

<?php 

Route::group('/loggedin', [ 
    'middleware' => 'auth', 
], function() { 

    Route::get('/profile', '[email protected]')->name('profile.index'); 

}); 

我們在刀片文件重定向使用路由功能,不要忘了,如果清除緩存你已經緩存了你的路線!

<h1>Hi! {{Auth::user()->name}}</h1> 
<a href="{{route('profile.index')}}">View profile</a> 

因爲我在路由上使用了名稱方法,我可以將該路由名稱傳遞給路由函數。使用php artisan route:list將列出所有你很酷的路由參數,因爲它也會告訴你名字和中間件等。

如果我有一個需要參數的路由;路由函數接受一個params數組作爲第二個參數。 route('profile.index', ['I_am_a_fake_param' => $user->id,])

讓我知道你是否需要別的幫助。

0

您可以用redirect()輔助方法,這樣的重定向:

return redirect()->url('/profile/' . $user_id); 

但我真的不按照你的用例?你爲什麼要重定向?你總是希望用戶去他們自己的個人資料?因爲現在你使用的是來自已認證用戶的ID,所以user_id參數幾乎沒有用處。