Laravel рекурсия в контроллере - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь получить всех потомков Правлений и изменить их ID категории на основе запроса из представления. В настоящее время я выполняю несколько операторов foreach в моем контроллере, но мне бы хотелось, чтобы они были только одним оператором foreach.

Формат

Board 1
- Board 2
-- Board 3
--- Board 4

Вот моя модель:

public function children()
{
    return $this->hasMany(Board::class, 'parent_id');
}

public function listChildren()
{
    $sections = new Collection();
    foreach($this->children as $section) {
        $sections->push($section);
        $sections = $sections->merge($section->listChildren());
    }
    return $sections;
}

Изображение того, как моя коллекция отформатирована выше: collection

И мой контроллер:

foreach($board->listChildren() as $cboard) {
    foreach($cboard->listChildren() as $ccboard) {
        $ccboard->category_id = request('category_id');
        $ccboard->save();
    }
    $cboard->category_id = request('category_id');
    $cboard->save();
}

Как бы я go сделал это? Спасибо за вашу помощь!

...