繁体   English   中英

在HasMany关系定义laravel中插入父模型的默认值

[英]Insert default values from parent Model in HasMany relationship definition laravel

我有一个像这样的课程模型:

class Lesson extends Model
    {
        use SoftDeletes;

        public    $primaryKey = 'lesson_id';
        .
        .
        .

         public function contents ()
         {
              return $this->hasMany('App\Content', 'lesson_id', 'lesson_id');
         }

     }

另一方面内容模型如下:

class Content extends Model
{
    public $primaryKey = 'content_id';
    public $timestamps = false;

    public function lesson ()
    {
        return $this->belongsTo('App\Lesson', 'lesson_id', 'lesson_id');
    }

}

如您所见,两个模型之间存在hasMany关系。

内容模型具有以下属性:

content_id
lesson_id
contentable_id
contentable_type
order

和课程模型有这些:

lesson_id
title
content

现在我想在保存特定课程的内容时,会根据课程模型属性自动填充一些内容属性。

$lesson = Lesson::findOrFail($lessonID);
$lesson->contents()->create(
        [
            'contentable_id'   => $newUnit['unit_id'],
        ]
);

例如,所选课程的lesson_id将保存为Content Model的lesson_idApp\\Lesson字符串作为contentable_type

我怎样才能做到这一点?

进行以下更改

课程模型

class Lesson extends Model
    {
        use SoftDeletes;

        public    $primaryKey = 'lesson_id';
        .
        .
        .

         public function contents ()
         {
              return $this->hasMany('App\Content', 'content');
         }

     }

内容模型

class Content extends Model
{
    public $primaryKey = 'content_id';
    public $timestamps = false;

    public function lesson ()
    {
        return $this->belongsTo('App\Lesson', 'content');
    }

}

然后尝试一下

$lesson = Lesson::findOrFail($lessonID);
$content = new Content();
$content->contentable_id = '1111';
$lesson->contents()->save(content);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM