Создание отношения модели использует неправильное поле в Laravel - PullRequest
0 голосов
/ 29 апреля 2018

Я хочу создать новую модель, используя отношения между двумя моделями 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, как на следующем скриншоте:

The issue

1 Ответ

0 голосов
/ 29 апреля 2018

Добавьте это к вашим моделям:

public $incrementing = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...