2017-01-27 10 views
1

ここで変数$user_detailにいくつかの値を割り当てる場合は、コントローラクラス全体で使用するようにデータベースからフェッチします。そのLaravel 5.3そのコントラクタ内でlaravelコントローラクラスのグローバル変数を定義する方法

上記のコードから空白の画面が表示されます。 これをどのように達成できますか、これにはより良い方法がありますか?提案してください。 ありがとう

+0

$ this-> user_detail = auth() - > user(); '必要ならどこでも** auth() - > user()'を使ってください** – zgabievi

答えて

2

あなたは現在認証されたユーザーを取得し、どこかに渡そうとしています。しかし、事はLaravelはすでにあなたのためにそれをしなかったですし、auth()->user()オブジェクトを使用して、アプリケーションのどの部分から認証されたユーザーにアクセスすることができます。

{{ auth()->user()->name }} 
{{ auth()->user()->email }} 
+0

すごい!私は別のテーブルを持っていると仮定します。私はauth()を使ってそれをフェッチするつもりです。例えば、現在のコードは 'User :: with(' hospital ') - > find(Auth :: id )); 'ユーザーは病院に属しています –

+0

@GauravRaiはこの場合、 'auth() - > user()のように[lazy eager loading](https://laravel.com/docs/5.3/eloquent-relationships#lazy-eager-loading) - > load( 'hospital') ' –

+0

ここで私を助けることができますhttp://stackoverflow.com/questions/41690759/laravel-flash-or-session-messages-not-expiring –

0

あなたは初期化を返し、あなたが空白のページを参照してください理由です。あなたがすべきことは、変数を初期化し、その後に変数を返すことです。あなたのコードは次のようになります。

public function index() { 
    $post_data = $this->user_detail 
    return $post_data; 
} 

これは最初に変数を初期化し、その後で変数を返すようになります。

@alexeymezeninと同じように、あなたはすでにauth()->user()を使ってアプリケーション内のどこにでもログインしたユーザーオブジェクトを取得できます。

関連する問題