我想使用两个模型module
和chapter
之间的关系创建一个新模型,它们之间有HasMany
个关系,如下所示:
//Module mode
public function chapters()
{
return $this->hasMany(Chapter::class, 'module_slug', 'slug');
}
//Chapters Model
public function module()
{
return $this->belongsTo(Module::class, 'module_slug', 'slug');
}
以下是我存储模型的方式:
$module = Module::create([
'title' => $request->module_title,
'icon' => $request->module_title
]);
$module->chapters()->create([
'pdf_url' => $path,
'title' => $request->chapter_title
]);
我遇到的问题是$module->chapters()->create()
正在使用id
而不是slug
我正在指定为主键,如下所示:< / p>
//Module model
protected $primaryKey = 'slug';
protected $keyType = 'string';
//Chapters model
protected $primaryKey = 'slug';
protected $keyType = 'string';
我不知道它为什么使用id
字段,如此截图:
答案 0 :(得分:1)
将此添加到您的模型中:
public $incrementing = false;