我有一个像这样的课程模型:
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
保存为内容模型lesson_id
,App\Lesson
字符串保存为contentable_type
。
我该怎么做?
答案 0 :(得分:0)
进行以下更改
课程模型
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);