我需要在Entity2,Entity1和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');
}
}
答案 0 :(得分:1)
您需要使用另一种多态方法来实现多对多关系:https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L805 morhpToMany 和 belongsToMany 您将相关模型作为参数传递