返回所有许多ToMany多态关系

时间:2014-12-19 23:17:49

标签: laravel eloquent

我有一个案例,我有以下模型:

演示文稿,幻灯片,视频(尚未实施)

这些都是通过多态的多对多关系加入的,一切看起来都很好。但是我发现需要查询所有"表现形式" (特定演示文稿的幻灯片和视频),因为我想将它们全部显示在列表中的一个位置。

我如何定义这种关系,或者我注定要在我的模型中创建一个函数来处理所有这些?

以下是模型和数据库架构:

演示模型         

class Presentation extends \Eloquent {
    protected $fillable = [
        'name'
    ];

    public function slideshows()
    {
        return $this->morphedByMany('Slideshow', 'presentable'); //, 'presentables', 'presentable_id', 'presentable_type');
    }

    public function presentables()
    {
        //code in here to return all presentable objects
    }
}

幻灯片模型

<?php
class Slideshow extends \Eloquent {
    protected $fillable = [];
    public function presentation()
    {
        return $this->morphToMany('Presentation', 'presentable', 'presentables', 'presentable_id', 'presentable_type');
    }
}

表格

Schema::create('presentables', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('presentation_id');
        $table->integer('order');
        $table->integer('presentable_id')->unsigned()->index();
        $table->string('presentable_type')->index();
        $table->timestamps();
    });

0 个答案:

没有答案