Laravel проверить, если родственные дети не пустые

У меня есть коллекция, которую я возвращаю в соответствии с этим

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

Поле 1: заполнено
Поле 2: заполнено

группа 2


Как я могу проверить, что каждое $ group’s-> fields [] -> content пусто! Перед написанием заголовка?

Извинения за любые опечатки, это очень, очень поздно

редактировать

Я думаю, что мне нужно сделать что-то вроде:

if( ! $group->fields->sum('contents[0].value') )

Есть ли способ, которым я могу передать аргумент sum функционировать?

0

Решение

Попробуй это,

@foreach($form->groups as $group)
{{ $group->title }}
@foreach(group->fields as $field)
@if(!empty($field->contents))
{{ $field->name }} {{ $field->contents[0]->value }}
@endif
...
1

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

Не зная всех особенностей, я бы, вероятно, исключил ненужные элементы, прежде чем передать их в представление. Используя toArray () для коллекции и запустив:

foreach( $form as $key => $groups ){

if( ! isset( $groups['fields']['contents'][0] ) ){

unset( $form[$key] );

}

}

Тогда, конечно, вам придется обновить код просмотра

@foreach($form['groups'] as $group)...
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector