2016-09-18 3 views
0

私は、生徒のレコードを表示することを目的とするアプリケーションに取り組んでいます。明らかに、私は生徒を選択する必要があります。 学生のIDをグローバル変数などに格納する方法を知りたいです。どのコントローラやビューからでもアプリケーションを使用できるようにするには、アプリケーションのユーザーが別のレコードを閉じるか別のレコードを表示すると、この変数には新しいIDがロードされます。laravelでアプリケーション全体の変数を維持する

どのようにすればよいでしょうか

+1

セッションを使用します。 laravel docsを確認してください – Lasith

+0

「どのコントローラーまたはビューからでも使用する」が暗い道を下ろし始めます。編集中のレコードのコンテキストを明示的に維持する方がはるかに優れています(現在のユーザーのコンテキストが適している)。この「グローバル」ルートを下ることは、混乱し疲れた労働者がいる古いスパゲッティ工場で終わります。 – user2864740

答えて

1

ここに概念とアイデアがあります。 各学生データを保存していることを考慮すると、各学生は自分のアカウントにログインするためのユーザー名とパスワードが必要です。

だから、あなたが望むものを今

Auth::student()->id; // For logged in user we do Auth::user()->id; 

のように認証されたユーザのIDを取得すると、AppServiceProviderを編集する必要があり、このため、ブート機能では、すべてのコントローラとビューにグローバルに、アクセスこのIDを共有することです認証されたユーザーを取得し、以下のようにグローバルに共有します。

public function boot() 
{ 
     $studentID = Auth::student()->id; // grab the ID you want to share globally 
     view()->share('studentID', $studentID); 
} 

使用しているモデルをインポートするようにしてください。このようにアクセスすると

session(['studentID'=>Auth::student()->id]); 

session('studentID'); 

は今、あなたは、グローバルに使用できる session機能を試してみて任意の場所この

{{ $studentID }} //this will echo the authenticated student ID 
1

のように認証された学生のIDにアクセスすることができますそして、ビュー:

{{ session('studentID') }} 
関連する問題