Как объединить три отношения многих ко многим в одной коллекции в Laravel? - PullRequest
0 голосов
/ 20 марта 2019

У меня есть много-много отношений между следующими:

актер <-> theatre_play, актер <-> мюзикл, актер <-> ballet_play

Как создать один массив для отображения всех результатов этих отношений в Laravel?

У меня сейчас:

$actor->theaterPlays, $actor->musicals, $actor->balletPlays

И мне нужно что-то вроде этого:

$actor->allPerformances

EDIT:

И я должен заказать их по имени или по дате исполнения и т. Д.

1 Ответ

0 голосов
/ 21 марта 2019

Не проверено, однако вы должны иметь возможность создать новый аксессор в вашей модели Actor, который отвечает за объединение всех типов:

public function getAllPerformancesAttribute()
{
    return $this->theaterPlays()
        ->get()
        ->merge($this->musicals()->get())
        ->merge($this->balletPlays()->get())
        ->all();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...