all
возвращает коллекцию, содержащую Blocks
Я не думаю, что вам нужны все существующие блоки в базе данных, но допустим, что вы хотите.
Вам необходимо отфильтровать Block
, который вы хотите, и для каждого его элемента. Вы можете сделать несколько подходов для фильтрации коллекции (вам не понадобится, если у вас есть точные данные для работы, запрос выполняется быстрее, чем обычно с объектами)
$collection->firstWhere('id', '=', 2);
Итак, ваш код должен выглядеть примерно так:
@foreach($allBlocks->firstWhere('id', '=', 2)->blockItems as $item)
{{ $item->item_type}}
@endforeach
https://laravel.com/api/5.8/Illuminate/Database/Eloquent/Model.html#method_all
https://laravel.com/docs/5.8/collections#method-first-where
Редактировать: Поскольку это Laravel 5.0, вам нужно применить условие where
https://laravel.com/api/5.0/Illuminate/Database/Eloquent/Collection.html#method_where
Обратите внимание, что он по-прежнему предоставляет вам коллекцию в соответствии с документами, но, предполагая, что ваш идентификатор уникален, вы можете использовать first()
.
$collection->where('id', '=', 2); // will result in a filtered collection, to which you can apply first()