多态-创建插入记录并跟进空白记录

时间:2019-11-11 14:11:20

标签: laravel eloquent entity-relationship

为此,我在模型上建立了一个多态关系,我必须为该变形所引用的表创建匹配字段。

所以我创建了一个

翻译模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Translation extends Model
{
    protected $table = 'translations';
    protected $primaryKey = 'id';

    protected $fillable = ['title', 'text_line1', 'text_line2', 'quote', 'language', 'content', 'translationable_type','translationable_id', 'content'];

    use SoftDeletes;

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

这是多边形,然后在一个单独的模型中-“幻灯片”

我创建了这个:

幻灯片模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Slide extends Model
{
    /**
     * Slide table
     */
    protected $table = 'slides';
    protected $primaryKey = 'id';

    public function translations()
    {
        return $this->morphToMany('App\Models\Translation', 'translationable', 'translations', '', 'translationable_id');
    }

}

然后在控制器中,我制作了一个测试脚本...

$slide = Slide::find(16);

        $translations = array(
            'text_line1'            => $slide->text_line1,
            'text_line2'            => $slide->text_line2,
            'language'              => 'fr',
            'translationable_id'    => $slide->id,
            'translationable_type'  => 'App\Slide'
        );

        $slide->translations()->create($translations);

运行此命令时,它会创建记录,但还会创建另一条完全空白的记录,除了引用 translationable_id translationable_type

有人知道为什么会这么做吗?

干杯。

0 个答案:

没有答案