【发布时间】:2020-10-30 05:27:42
【问题描述】:
Laravel 版本:7.0 这是我的表。
Schema::create('model_email_form', function (Blueprint $table) {
$table->id();
$table->string('model_type');
$table->unsignedBigInteger('model_id');
$table->unsignedBigInteger('email_id');
$table->unsignedBigInteger('form_id');
$table->timestamps();
});
这是我的Service 模型。
public function forms()
{
return $this->morphToMany(
Form::class,
'model',
'model_email_form',
'model_id',
'form_id'
);
}
public function emails()
{
return $this->morphToMany(
Email::class,
'model',
'model_email_form',
'model_id',
'email_id'
);
}
我在model_email_form 表中插入了数据,但是当我得到service model 对象时,emails 和forms 有空对象。
谁能帮帮我?
【问题讨论】:
-
MorphToMany 用于多态多对多。您提供的 model_email_form 表对此不正确。此外,请更详细地描述表单、电子邮件和服务之间的关系。是否有许多表单与更多模型相关而不是服务?同样,是否有许多电子邮件与更多模型相关而不是服务?您是否有理由希望将两个多态关系存储在同一个表中?
-
感谢您的回复。 Form、Email和Service之间的关系都是多对多的,我之所以把form_id和email_id放在一起是因为service需要两者。
-
它可以同时要求两者,并且不能将它们放在同一个表中。我会就我对什么是合适的解释做出回答,如果不合适,我会删除它
-
我只是将它们分成两个表。但是还是不行。
-
啊,我刚刚发现了问题。我的错。感谢您的帮助。
标签: php laravel eloquent polymorphism laravel-relations