我使用laravel-permission來管理角色和顯示內容。根據文檔,您可以使用$roles = $user->roles()->pluck('name')
來檢索用戶角色。我的問題是,返回的數據是["admin"]
而不僅僅是admin
。我正在審查收集方法,它看起來像get('name')
將返回我正在尋找。當我嘗試使用以下命令Auth::user()->roles()->get('name')
我得到使用collection-> get()而不是collection-> pluck()
1/1
ErrorException in BelongsToMany.php line 360:
Argument 1 passed to Illuminate\Database\Eloquent\Relations\BelongsToMany::getSelectColumns() must be of the type array, string given
在我看來,像get()
方法需要一個數組但是,我想在數組中引用的項目。的Auth::user()->roles()->get()
的原始輸出[{"id":1,"name":"admin","created_at":"2016-03-10 06:24:47","updated_at":"2016-03-10 06:24:47","pivot":{"user_id":1,"role_id":1}}]
我已經找到了解決辦法拉正確的內容,但它使用正則表達式用於去除包含在pluck()
方法不需要的字符。
preg_replace('/\W/i','', Auth::user()->roles()->pluck('name'))
好像我失去了一些東西,或者使用get()
方法不正確地接近。任何建議表示讚賞。