2016-10-24 33 views
2

我希望能夠在我的視圖中獲取登錄用戶的詳細信息。例如{{ $user->email }}如何使Laravel 5.3中的所有視圖都可以使用登錄的用戶對象

這裏是我的Controller.php

public $view_data = array(); 

public function __construct() 
{ 
    $this->middleware('auth'); 
    $this->view_data['user'] = Auth::user(); 
} 

$user在我的視圖返回NULL。我錯過了什麼嗎?

+0

看看到http://stackoverflow.com/a/28608795/1728836 –

回答

2

它是在所有的觀點已經默認提供的通過:

Auth::user() 
auth()->user() 
1

您可以直接通過下面的方法訪問的loggedIn用戶在您的看法:

{!! Auth::user()->name !!} 
{!! auth()->user()->name !!} 
{!! access()->user()->name !!} 
0

{{\驗證::用戶( )}} {{\驗證::用戶()[ '電子郵件']}}

0

您登錄後Laravel已經提供這種服務只是簡單的寫:

{{ Auth::user()->email }} 
{{ auth()->user()->email }} 

您還可以使用的ServiceProvider所有的觀點:

創建服務提供商:php artisan make:provider UserServiceProvider

轉到

應用程序\供應商\ UserServiceProvider.php

<?php 

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 
use Illuminate\Support\Facades\View; 
use Auth; 

class UserServiceProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap the application services. 
    * 
    * @return void 
    */ 

    public function boot() 
    { 
     if(Auth::check()){ 
      $user= Auth::user(); 
      View::share('user', $user); 
     } 
    } 

    /** 
    * Register the application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
    } 
} 

比註冊config\app.php

App\Providers\UserServiceProvider::class, 

現在,用戶對象內提供這些服務供應商的所有查看您只是單純地寫:

{{ $user->email }} 
{{ $user->username }} 

Laravel Sharing Data With All Views

+0

他正在討論在視圖中使用'auth() - > user() - >:field:'就足夠了。 – bytesarelife

相關問題