2017-06-05 13 views
-1

ルートプロファイル/ {user_id}ルートユーザーIDを使用しているLaravel

リンクをクリックしたときにユーザーをそのURLにリダイレクトするにはどうすればよいですか?

ここに私のコントローラです:

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

どのようなリストがありますか?あなたのコントローラーはどこですか?投稿する前にあなたの質問を校正しましたか? – sisve

+0

申し訳ありませんが、それは "リンク"と言われていました – 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> 

私はRouteで名前メソッドを使用したので、私はそのルート名をルート関数に渡すことができます。 php artisan route:listを使用すると、名前やミドルウェアなどを伝えるので、クールなすべてのルートパラメータが表示されます。

パラメータが必要なルートがある場合は、 route関数は第2のパラメータとしてparamsの配列を受け取ります。 route('profile.index', ['I_am_a_fake_param' => $user->id,])

他に何か助けが必要な場合は教えてください。

0

あなたはこのようなredirect()ヘルパーメソッドでリダイレクトできます。

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

しかし、私は本当にあなたのユースケースを以下のいませんよ?なぜリダイレクトしたいのですか?あなたはいつもユーザーが自分のプロフィールに行くようにしますか?今は認証されたユーザーのIDを使用しているので、user_idパラメータはほとんど役に立たない。

関連する問題