Laravel: Как добавить составной ключ (2 или более столбцов) в качестве $ primaryKey в связанной модели?

Имя столбца первичного ключа в любой модели в структуре Laravel id

protected $primaryKey = 'id';

И я знаю, что могу изменить это имя по умолчанию следующим образом:

protected $primaryKey = 'new_name';

Мой вопрос: что, если у меня есть составной ключ (2 или более столбцов) в таблице, как мне добавить их в качестве $primaryKey? И действительно ли я должен их определить?

11

Решение

От Laravel docs:

$table->primary(array('first', 'last'));

Изменить: я неправильно понял вопрос. Эта ветка может дать несколько ответов: http://forumsarchive.laravel.io/viewtopic.php?pid=34475

Особенно переопределяя find() метод.

public static function find($primaryOne, $PrimaryTwo) {
return Widget::where('primaryOne', '=', $primaryOne)
->where('PrimaryTwo', '=', $PrimaryTwo)
->first();
}
6

Другие решения

Других решений пока нет …