- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Laravel 版本:7.0 这是我的 table 。
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();
});
这是我的服务
模型。
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
为空对象。
谁能帮帮我?
最佳答案
来自您的问题和评论:
有表格、电子邮件和服务。表单可以与任意数量的不同类型的模型相关联。电子邮件可以与任意数量的不同类型的模型相关联。一个服务可以有很多表单,一个服务可以有很多电子邮件。
以此为基础,这将是我们的模式:
Schema::create('forms', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name'); // as an example
...
$table->timestamps();
});
Schema::create('formables', function (Blueprint $table) {
$table->unsignedBigInteger('form_id'); // the id of the form
$table->unsignedBigInteger('formable_id'); // the associated model's id
$table->string('formable_type'); // The associated model's class name
});
Schema::create('emails', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('subject'); // as an example
...
$table->timestamps();
});
Schema::create('emailables', function (Blueprint $table) {
$table->unsignedBigInteger('email_id'); // the id of the email
$table->unsignedBigInteger('emailable_id'); // the associated model's id
$table->string('emailable_type'); // The associated model's class name
});
Schema::create('services', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name'); // as an example
...
$table->timestamps();
});
使用该架构,我们可以创建具有以下关系的以下模型:
class Form extends Model
{
public function services()
{
return $this->morphedByMany(Service::class, 'formable');
}
// Add the other morphedByMany relationships of forms
}
class Email extends Model
{
public function services()
{
return $this->morphedByMany(Service::class, 'emailable');
}
// Add the other morphedByMany relationships of emails
}
class Service extends Model
{
public function forms()
{
return $this->morphedToMany(Form::class, 'formable');
}
public function emails()
{
return $this->morphedToMany(Email::class, 'emailable');
}
}
关于php - Laravel MorphToMany 不适用于多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62817893/
我创建了以下数据库结构来管理不同批处理的不同服务内容,只是因为这个结构也必须为子服务复制,所以我决定在 Laravel 中使用“多对多多态关系”。 . 要在表“service_and_relative
我的项目表上有一个多态关系 public function categories(): MorphToMany { return $this->morphToMany(Category::cl
Laravel 版本:7.0 这是我的 table 。 Schema::create('model_email_form', function (Blueprint $table) { $ta
谁能给我解释一下。只是在其中一个 laravel 包中遇到它 public function users(): MorphToMany { return $this->morphedByMan
我们可以自定义morphMany $type 变形许多 public function morphMany($related, $name, $type = null, $id = null, $lo
我是一名优秀的程序员,十分优秀!