如何在所有Laravel视图中共享经过身份验证的用户

问题描述 投票:0回答:4

我在Laravel 5.8]中有一个很奇怪的问题。我想与所有视图共享用户变量。

我将此添加到boot中的AppServiceProvider.php方法中:

Event::listen(Authenticated::class, function ($e) {
    view()->share('user', $e->user);
});

在视图中,我有这个:

@auth('web')
  {{$user->name}}
@endauth

User模型具有

protected $guard = 'web';

它在大多数情况下都有效,但有时会出现此错误:

Uncaught ErrorException: Undefined variable: user in /home/forge/www.mywebsite.com/storage/framework/views/4b273b493839e5fb54c3f6a2d11d9446bee5de33.php:11

怎么可能?

我在Laravel 5.8中有一个很奇怪的问题。我想与所有视图共享用户变量。我将此添加到AppServiceProvider.php的启动方法中:Event :: listen(Authenticated :: class,function($ e)...

php laravel session laravel-5.8
4个回答
1
投票

您可以在视图中通过auth帮助器访问经过身份验证的用户。


1
投票

只需在刀片中使用全局auth()方法即可获取经过身份验证的用户信息。


1
投票

考虑将视图编辑器用于视图周围的共享变量


0
投票

所有这些都是很好的答案。您也可以使用Auth门面来完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.