Подтвердить что ты не робот

Изменить первичный ключ по умолчанию в Eloquent

Могу ли я изменить первичный ключ модели Eloquent.

Я хочу установить первичный ключ, например admin_id вместо 'id'?

Я знаю, что могу изменить имя таблицы для модели, например

protected $table = "admin";

Есть ли что-то подобное для первичного ключа?

4b9b3361

Ответ 1

Да

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}

Ответ 2

class User extends Eloquent {

    protected $primarykey = 'admin_id';

}

но

class User extends Eloquent {

    protected $primarykey = 'admin_id';

}

обратите внимание на букву K (столица) на переменную $primaryKey

Ответ 3

Первичная ключевая переменная чувствительна к регистру и должна быть $primaryKey для работы.

Пример:

protected $primaryKey = 'your_primary_key_id';

Пример в классе модели:

class User extends Eloquent {

    protected $primaryKey = 'your_primary_key_id';

}

Ответ 4

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}

Согласно документации Laravel:


Eloquent также предположит, что каждая таблица имеет столбец первичного ключа с именем id. Вы можете определить свойство $primaryKey, чтобы переопределить это соглашение.

Кроме того, Eloquent предполагает, что первичный ключ представляет собой увеличивающееся целочисленное значение, что означает, что по умолчанию первичный ключ будет автоматически передаваться в int. Если вы хотите использовать неинкрементный или нечисловой первичный ключ, вы должны установить для общедоступного свойства $incrementing на вашей модели значение false.

Ответ 5

Чтобы назначить первичный ключ, вы должны...- >

class User extends Eloquent {

    protected $primaryKey='admin_id';

 }