У меня есть коллекция, которую я возвращаю в соответствии с этим
form : {
groups : [
{
title : 'group 1'
fields : [
{
name: 'field 1',
contents:[
{
value: 'Filled in'
}
]
}
{
name: 'field 2',
contents :[
{
value: 'Filled in'
}
]
}
]
},
{
title : 'group 2'
fields : [
{
name: 'field 1',
contents:[]
}
{
name: 'field 2',
contents :[]
}
]
}
]
}
Который я потом перебираю вот так
@foreach($form->groups as $group)
{{ $group->title }}
@foreach(group->fields as $field)
{{ $field->name }} {{ $field->contents[0]->value }}
...
Но я нахожусь в ситуации, когда у меня может быть пустой field.contents
но я все еще повторяю название группы, например, вышеизложенное
Поле 1: заполнено
Поле 2: заполнено
Как я могу проверить, что каждое $ group’s-> fields [] -> content пусто! Перед написанием заголовка?
Извинения за любые опечатки, это очень, очень поздно
редактировать
Я думаю, что мне нужно сделать что-то вроде:
if( ! $group->fields->sum('contents[0].value') )
Есть ли способ, которым я могу передать аргумент sum
функционировать?
Попробуй это,
@foreach($form->groups as $group)
{{ $group->title }}
@foreach(group->fields as $field)
@if(!empty($field->contents))
{{ $field->name }} {{ $field->contents[0]->value }}
@endif
...
Не зная всех особенностей, я бы, вероятно, исключил ненужные элементы, прежде чем передать их в представление. Используя toArray () для коллекции и запустив:
foreach( $form as $key => $groups ){
if( ! isset( $groups['fields']['contents'][0] ) ){
unset( $form[$key] );
}
}
Тогда, конечно, вам придется обновить код просмотра
@foreach($form['groups'] as $group)...