在Blade中使用Bitfumes MultiAuth Laravel包获取管理员名称报错解决
解决Laravel Blade获取当前管理员名称的问题
错误Method Illuminate\Auth\SessionGuard::admin does not exist是因为Auth facade没有admin()方法,正确的做法是指定管理员对应的guard来获取用户实例:
确认Auth配置
先检查config/auth.php中是否配置了adminguard和对应的provider(假设你的管理员模型是App\Models\Admin):'guards' => [ // ...其他guard 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], ], 'providers' => [ // ...其他provider 'admins' => [ 'driver' => 'eloquent', 'model' => App\Models\Admin::class, ], ],在Blade中获取管理员名称
配置完成后,通过指定adminguard来获取当前登录的管理员:{{ Auth::guard('admin')->user()->name }}或者使用更简洁的辅助函数:
{{ auth()->guard('admin')->user()->name }}避免未登录时的报错
为了防止管理员未登录时出现Trying to get property 'name' of non-object错误,可以添加登录判断:{{ auth()->guard('admin')->check() ? auth()->guard('admin')->user()->name : '未登录' }}或者使用
optional辅助函数:{{ optional(auth()->guard('admin')->user())->name }}
内容的提问来源于stack exchange,提问作者devsam247
相关产品推荐
相关产品推荐

