0

我需要在 Entity2、Entity1 和 Types 之间创建多态关系。event 和 Types 的关系很容易做,但是 Entity2 和 Types 的关系有问题,因为它是多对多的关系。

在此处输入图像描述

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');
        }
    }
4

1 回答 1

1

您需要对多对多关系使用另一种多态方法:https ://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L805 morhpToManybelongsToMany你在哪里将相关模型作为参数传递。

于 2014-02-25T13:19:53.867 回答