我在Laravel 5.4中使用Sentinel。我想要做的是:獲取登錄的用戶詳細信息,但Sentinel::getUser()
返回null。對於這個過程,我在this answer 中看過這條指令。我正在使用View Composer
方法。獲取登錄View Composer中的用戶無法正常工作(Sentinel - Laravel 5.4)
步驟我都做
我創建了一個文件ViewComposerServiceProvider
Providers
文件夾內。它看起來像:
public function boot()
{
$user = Sentinel::getUser(); //<<-- main error: dd($user) returns empty
$userDetail = UsersDetail::where('user_id', $user->id)->firstOrFail();
if (is_null ($userDetail)) {
$userDetail = new UsersDetail;
}
view()->composer('backend.*', function($view) {
$view->with('userDetail', $userDetail);
//$view->with('userDetail', 'Test'); //this works fine
});
}
然後,我註冊這個提供在config/app.php
提供商陣列 App\Providers\ViewComposerServiceProvider::class,
的時候,我通過其他變量userDetail
,它的工作完美。但是,我無法獲取登錄的用戶詳細信息。我錯過了什麼嗎?
繼this answer之後的第一個解決方案也似乎不起作用,因爲構造是在中間件之前運行的。請任何幫助。
userDetail數據的serviceProvider.php引導方法請先更換firstorFail到( ); –
另一個選項檢查可以得到$ user-> id –
請檢查它。 –