Изменить первичный ключ по умолчанию в Eloquent
могу ли я изменить красноречивый первичный ключ модели.
Я хочу установить первичный ключ например admin_id вместо 'id'?
Я знаю, что могу изменить имя таблицы для модели, как
protected $table = "admin";
есть ли что-то подобное для первичного ключа?
6 ответов:
class User extends Eloquent { protected $primarykey = 'admin_id'; }но
class User extends Eloquent { protected $primaryKey = 'admin_id'; }обратите внимание на букву K (capital) в переменной $primaryKey
переменная первичного ключа чувствительна к регистру и должна быть
$primaryKeyна работу.пример:
protected $primaryKey = 'your_primary_key_id';пример в классе модели:
class User extends Eloquent { protected $primaryKey = 'your_primary_key_id'; }
class User extends Eloquent { protected $primaryKey = 'admin_id'; }согласно документации Laravel:
Eloquent также предполагает, что каждая таблица имеет столбец первичного ключа с именем
id. Вы можете определить$primaryKeyсвойство для переопределения этого соглашения.кроме того, Eloquent предполагает, что первичный ключ является увеличивающимся целочисленным значением, что означает, что по умолчанию первичный ключ будет автоматически приведен к int. Если вы хотите использовать неинкрементный или нечисловой первичный ключ, вы должны установить public
$incrementingсвойство на вашей модели false.
если вы хотите использовать составной ключ (строка)
вы должны убедиться, что вы установить
public $incrementing = falseв противном случае laravel приведет поле к целому числу, давая0class User extends Model { protected $primaryKey = 'my_string_key'; public $timestamp = false; }
чтобы назначить первичный ключ, вы должны..- >
class User extends Eloquent { protected $primaryKey='admin_id'; }
Comments