0
我有一個課模式是這樣的:插入默認值
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
。
我該怎麼做?
Lesson Model的'content'字段是簡單的TEXT字段,對於課程模型中的內容模型不是外鍵 –
您是否檢查過我的代碼? –
您已將'content'字段添加到'$ this-> hasMany('App \ Content','content');'和'$ this-> belongsTo('App \ Lesson','content');'作爲外鍵那是不正確的。我想''contentable_id'由所選'Lesson'模型的'lesson_id'自動填充。你手動初始化它。 –