多对多关系

时间:2013-06-19 18:09:09

标签: laravel laravel-4 polymorphic-associations eloquent

我需要在Entity2,Entity1和Types之间创建一个多态关系。 事件和类型之间的关系很容易,但是在Entity2和Types之间的关系中有问题,因为它是一个多对多的关系。

enter image description here

class CreateTypesTable extends Migration {
   public function up()
    {
        Schema::create('types', function(Blueprint $table) {
            $table->increments('id');
            $table->integer('typeable_id');
            $table->string('typeable_type', 20);
            $table->string('name', 20);
            $table->text('description')->nullable();
        });
    }
}

class Entity1 extends Eloquent {
    public function type()
    {
        return $this->morphMany('App\Models\Type', 'typeable');
    }
}

class Type extends Eloquent {

    public function typeable()
    {
        return $this->morphTo();
    }
}

因为类型和Entitys2之间的关系是多对多,不知道如何创建,因为它需要一个数据透视表。

    class Entity2 extends Eloquent {
        public function types()
        {
//          return $this->morphMany('App\Models\Type', 'typeable');
        }
    }

1 个答案:

答案 0 :(得分:1)

您需要使用另一种多态方法来实现多对多关系:https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L805 morhpToMany belongsToMany 您将相关模型作为参数传递