Значения метода коллекции не сбрасывают ключи массива после использования забудьте - PullRequest
0 голосов
/ 01 июля 2019

У меня есть вложенный массив объектов внутри массива объектов.

Pages имеет много sections

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

foreach ($pages as $pageKey => &$page) {
    foreach ($page->sections as $sectionKey => $section) {

        // Remove sections with no questions 
        if ($section->questions->count() < 1) {
            $page->sections->forget($sectionKey);
        }
    }

    $page->sections = $page->sections->values()->all();
}

Однако ключи секций не сбрасываются.

enter image description here

1 Ответ

0 голосов
/ 01 июля 2019

Что (я предполагаю) вы пытаетесь сделать, это получить все Page с Section с, по крайней мере Comment с.Для этого вы можете сделать это в одном запросе:

$pages = Pages::with(['sections' => function ($query) {
                    $query->has('comments');
                }])
               ->get();

. Таким образом, вы стремитесь загрузить Section, относящиеся к каждому Page, но только к тем, у которых есть хотя бы один комментарий.связанные с ними.


Вы можете проверить документацию, относящуюся к этим темам:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...