Я хочу создать новую модель, используя отношения между двумя моделями 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
, который я определяю как первичный ключ , например:
//Module model
protected $primaryKey = 'slug';
protected $keyType = 'string';
//Chapters model
protected $primaryKey = 'slug';
protected $keyType = 'string';
Я не знаю, почему он использует поле id
, как на следующем скриншоте: