Переопределение имени таблицы CodeIgniter DataMapper не работает

Я только что установил DataMapper с CodeIgniter и написал модели по мере необходимости.

Однако я, похоже, что-то упустил, так как при запуске запроса DataMapper не видит переопределения имени таблицы и думает, что таблицы вообще нет.

Забавно, что если я удаляю переопределение, оно работает как надо (хотя и с ошибкой, сообщающей, что автоматически сгенерированный tabled не существует).

Код модели:

class Activity extends Datamapper {

var $table = 'activity_log';

var $has_one = [
'user'
];

}

Код контроллера:

$activity = new Activity(1);

Ошибка:

Error Number: 1064
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right
syntax to use near 'WHERE `.`id` = 1' at line 2

SELECT * WHERE `.`id` = 1

Как я уже упоминал выше, если я удалю var $ tables = ‘activity_log’; тогда он вернется к поиску «действий» за столом, как и положено.

1

Решение

правила

Модели DataMapper должны называться единственной версией объекта
имя, с заглавной первой буквой. Так что для объекта пользователя,
Модель DataMapper будет называться User. Модель должна иметь
соответствующая таблица в базе данных, названная строчными
версия названия объекта. Таким образом, для модели DataMapper с именем User
Таблица будет именоваться пользователями. Для модели DataMapper с именем Country
таблица будет называться страны.

В большинстве случаев разница между единственной и множественной версиями
имени объекта — это просто вопрос добавления буквы s в конце.

Ваша модель должна быть названа как Activity_log,

Документы.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector