【发布时间】:2018-05-21 13:48:45
【问题描述】:
如何在服务提供商中获取有关登录用户的信息?当我在我的模板 {{ $test }} 中使用它时,总是返回 0,但我 100% 确定我已登录。或者你有更好的解决方案?
use Illuminate\Support\ServiceProvider;
use Auth;
use View;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$user = Auth::user();
if ($user !== null) {
$walletsCount = $user->wallets()->count();
} else {
$walletsCount = 0;
}
View::share('test', $walletsCount);
}
}
【问题讨论】:
-
但是你在做 Auth::user() 的时候已经有了用户
-
Auth::user()已经是全球性的,因此我不太了解您的意图... -
当我在控制器中使用它时我没有任何问题。我想计算模板中的钱包数量。
-
我仍然不明白这里的意图......这几乎就像你想要一个 ComposerServiceProvider。请澄清
-
在会话中间件运行之前,您没有会话......服务提供者@boot 在生命周期的早期被调用,远在请求到达该中间件之前
标签: php laravel laravel-5 service-provider