В недавнем проекте у меня было пользовательское имя для одной из моих таблиц, пользовательской таблицы (она называлась user_id
вместо просто id
).
Когда я попытался вставить в него данные, я получил следующую ошибку:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update users set active = 1, code = , updated_at = 2015-01-20 21:28:14 where id is null)
Я решил это, переименовав столбец id моей таблицы в id
Таким образом, в соответствии с предпочтениями Laravel.
Однако, если бы мне абсолютно необходимо было использовать произвольное имя идентификатора для любой данной таблицы при использовании Laravel, каковы были бы лучшие решения / обходные пути для этой проблемы?
Из документов:
http://laravel.com/docs/4.2/eloquent
Примечание: Eloquent также предполагает, что каждая таблица имеет первичный ключ
столбец с именем id. Вы можете определить свойство primaryKey для переопределения этого
условность. Кроме того, вы можете определить свойство соединения для переопределения
имя соединения с базой данных, которое следует использовать при использовании
модель.
Итак, в вашей модели вы бы просто добавили:
protected $primaryKey = 'user_id';
Других решений пока нет …