2016-03-07 67 views
0

我有這個課程和$total_mess變量來計算用戶沒有閱讀的消息。我有問題,無論用戶是否登錄,我只收到$total_mess空字符串(如果條件第二)。在Laravel中查看分享5

<?php namespace App\Providers; 

use App\Chat; 
use Auth; 
use Illuminate\Support\ServiceProvider; 

class AppServiceProvider extends ServiceProvider { 

    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() { 
     if (Auth::check()) { 
      $total_mess = Chat::whereRaw('view = ? and to_user = ?', [0, Auth::user()->username])->count(); 
      view()->share('total_mess', $total_mess); 
     } 
     if (Auth::guest()) { 
      view()->share('total_mess', ''); 
     } 
    } 

那麼我該如何解決這個問題?

回答

1

只是這樣做在你的引導方法,其將提供您的變量一旦視圖都準備好了,這不僅會在視圖中使用

view()->composer('*', function ($view) 
{ 
    if (Auth::check()) { 
    $total_mess = Chat::whereRaw('view = ? and to_user = ?', [0, Auth::user()->username])->count(); 
    $view->with('total_mess', $total_mess); 
    } 

    if (Auth::guest()) { 
     $view->with('total_mess', $total_mess); 
    } 

});    

編輯

,如果你也想訪問在你的控制器中,如同視圖,然後試試這個而不是上面的方法

app()->singleton('total_mess',function($app){ 

    if (Auth::check()) { 
    $total_mess = Chat::whereRaw('view = ? and to_user = ?', [0, Auth::user()->username])->count(); 
    } 

    if (Auth::guest()) { 
     $total_mess = ''; 
    } 

     return $total_mess; 

}); 

並且可以訪問我們的值ing App::make('friend_new_req_count')

+0

謝謝,我會試試看 –