У меня есть табличное имя «классы» в базе данных, и когда я создаю модель с именем «класс», она дает синтаксическую ошибку (очевидно). Есть ли способ удалить эту ошибку без изменения имя таблицы в базе данных?с использованием класса класса «класс» в cakephp
ответ
я бы держаться подальше от модели под названием «Класс», это keyword of php и это
может
будет (как указано @ AD7six) вызывают проблемы, если они созданы таким образом.
Вы можете сделать следующее:
class MyClass extends AppModel {
public $useTable = 'classes';
}
Убедитесь, что контроллер ClassesController вызывает MyClass
(с $uses
), но кроме того, вы можете использовать эту модель, как и любую другую модель, не заботясь о зарезервированных ключевых словах.
Я не могу вспомнить имя, которое я использовал, но у меня была аналогичная проблема с cakephp, и после того, как некоторые из них искали онлайн, было намного проще просто изменить имя таблицы. Соглашения об именах довольно строги, и создание рабочего места для этого не стоит.
Вы могли бы найти другое название для вашей модели, а затем связать эту модель к столу с помощью useTable
надежды, что помогает
может -> он делает (это ошибка разбора - как упоминалось также в вопросе). Стоит отметить ассоциации могут быть aliased '$ hasMany => array ('Class' => array ('className' => 'MyClass'));' +1 для включения примера. – AD7six
Спасибо @Nunser за ваш ответ, это было очень полезно. – Garry
спасибо @ AD7six за разъясняющие ассоциации – Garry