Соглашение об именовании в Laravel

В недавнем проекте у меня было пользовательское имя для одной из моих таблиц, пользовательской таблицы (она называлась 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, каковы были бы лучшие решения / обходные пути для этой проблемы?

0

Решение

Из документов:

http://laravel.com/docs/4.2/eloquent

Примечание: Eloquent также предполагает, что каждая таблица имеет первичный ключ
столбец с именем id. Вы можете определить свойство primaryKey для переопределения этого
условность. Кроме того, вы можете определить свойство соединения для переопределения
имя соединения с базой данных, которое следует использовать при использовании
модель.

Итак, в вашей модели вы бы просто добавили:

protected $primaryKey = 'user_id';
3

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

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

По вопросам рекламы [email protected]