У меня есть поле json в моей базе данных с именем разрешения{"read": true, "create": true}. Теперь я хочу показать это в моем представлении лезвие. Я пробовал этот способ, но он показывает ошибку.
@foreach($users as $user)
<tr>
<td>{{$user->roles->permissions}}</td>
</tr>
@endforeach
показать это сообщение об ошибке.
Property [permissions] does not exist on this collection instance.
Модель пользователя
public function roles()
{
return $this->belongsToMany(Role::class,'user_roles');
}
есть permissionsfield в таблице roels?
да, поле разрешения находится в таблице роли.
Я пробовал {{$user->roles['permissions']}}, показывает ошибку Неопределенный индекс.

Я проверил этот сценарий и все было в порядке. Надеюсь, вам пригодится:
мой route:
Route::get('/test', function (Request $request) {
$users=\App\User::with('roles')->get();
return view('welcome',compact('users'));
});
определить метод roles внутри модели user:
public function roles()
{
return $this->belongsToMany(Role::class,'user_roles');;
}
и получаем permissions в view:
@foreach($users as $user)
@foreach($user->roles as $role)
<tr>
<td>{{$role}}</td>
</tr>
@endforea
@endforeach
Я тестирую с этими таблицами
user_roles
user_id | role_id
-----------------
1 | 2
1 | 2
roles:
id | permissions
-----------------
1 | {"read": true, "create": true}
2 | {"read": true, "create": false}
users:
id | name | email | password | remember_token | created_at|updated_at
----------------------------------------------------------------------
1 | alihossein|[email protected]|XXXXX|UIWKK67ei5CCuiv1OXilKY2aRkTfSqGLpqJch0F9YmenGSorsQGHVvWiX6kP| 2018-05-28 22:25:14 | 2018-05-28 22:25:14
Может ли у пользователя много role в таблице user_roles?
Я не знаю точно, что это за база данных schema. Я проверяю код
Позвольте нам продолжить обсуждение в чате.
попробуйте: {{$ user-> roles ['permissions']}}