Не могу получить доступ к свойству объекта в Laravel

Я получаю результаты из базы данных в контроллере и сохраняю их как объекты в массиве

    $roleSentinel = Sentinel::findRoleByName($role);
$permisssionsName = array_keys($roleSentinel['permissions']);
$permissions = array();

foreach ($permisssionsName as $permiso) {
$permissions[] = DB::table('sec_permission')->where('name', '=',$permiso)->get();
}

return view('menu', ['role' => $role,'permisos' => $permisos]);

объект будет похож

[{"permission_id":1,"name":"foo","object_id":1,"operation_id":1}]

Итак, в представлении я пытаюсь получить значения и распечатать их

<b>{{$role}}</b><br>
@foreach ($permisos as $permiso)
@foreach ($permiso->name as $name)
{{$name}}
@endforeach
@endforeach

однако я получаю Undefined property: Illuminate\Support\Collection::$name

1

Решение

Каждая переменная в массиве является массивом объектов. Есть два способа сделать это.

Добавьте еще один foreach:

@foreach ($permisos as $permiso)

@foreach ($permiso as $perm)
@foreach ($perm->name as $name)
{{$name}}
@endforeach
@endforeach
@endforeach

Или получите одну полную коллекцию со всеми именами:

$permissionsName = array_keys($roleSentinel['permissions']);

$permissions = DB::table('sec_permission')->whereIn('name',$permissionsName)->get();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]