在我的主页中,我可以使用以下方法打印登录帐户的名称和电子邮件:{{ Auth::user()->name }}
{{ Auth::user()->email }}
但当我想打印附加到帐户的角色时,请使用以下方法:{{ Auth::user()->roles }}
它打印表中所有数据的键和值的集合,如下所示:[{"id":3,"name":"mahasiswa","display_name":"Mahasiswa","description":"Mahasiswa","created_at":"2021-03-22T13:09:14.000000Z","updated_at":"2021-03-22T13:09:14.000000Z","pivot":{"user_id":4,"role_id":3,"user_type":"App\Models\User"}}]
我只想提取名称或display_name。
所以,我使用{{ Auth::user()->roles->where('name')->first() }}
,但它仍然显示相同的集合,但没有";[]";括号。
谢谢大家的回答!我很感激。
但我在这里找到了答案https://stackoverflow.com/a/39357511/15471776
因此,我将代码更改为{{ Auth::user()->roles->first()->display_name }}
,它完美地显示了附加在我登录帐户上的角色名称。
您应该先获取第一条记录,然后再获取字段。
{{ Auth::user()->roles->first()->get('name') }}
以下是文档的参考资料
https://laravel.com/docs/8.x/collections#method-获取