如何在Laravel中将三个多对多关系结果合并到一个集合中?

时间:2019-03-20 19:27:38

标签: laravel laravel-5 many-to-many

我与以下各项之间有很多关系:

演员<->戏剧,演员<->音乐剧,演员<->芭蕾舞剧

如何制作一个数组以显示Laravel中这些关系的所有结果?

我现在有:

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

我需要这样的东西:

$actor->allPerformances

编辑:

我必须按名称或演出日期等来订购。

1 个答案:

答案 0 :(得分:0)

未经测试,但是您应该能够在Actor模型中创建一个新的accessor,该模型负责将所有类型合并在一起:

public function getAllPerformancesAttribute()
{
    return $this->theaterPlays()
        ->get()
        ->merge($this->musicals()->get())
        ->merge($this->balletPlays()->get())
        ->all();
}