Я использую CakePHP 2.6.9. У меня есть таблица с именем: chat_info и файл модели: ChatInfo.php и класс внутри ChatInfo:
<?php
/**
*
*/
class ChatInfo extends AppModel
{
var $name = "chatinfo";
}
?>
но это показывает ошибку. Я искал эту ошибку и обнаружил, что это связано с нарушением соглашения об именах в cakecaphp. Но что я делаю здесь?
Как найдено в документы:
Свойство useTable указывает имя таблицы базы данных. По умолчанию модель использует строчную множественную форму имени класса модели
Соглашения не должны быть неразрывными правилами. Это руководящие принципы, которые, если им следовать, облегчают жизнь. Это не значит, что им нужно следовать. С помощью useTable
можно использовать любое имя таблицы, в этом случае:
class ChatInfo extends AppModel
{
public $useTable = "chat_info";
}
Два в стороне, если вы на самом деле не используете php4:
var
это стиль php 4, используйте возможности используемой версии php, т.е. объявляйте переменные используя публичный, охраняемый или частный.если вы переименуете таблицу из chat_info в chat_infos все будет хорошо
Или, если вы хотите сохранить это имя для таблицы, добавьте это в вашу модель:
$useTable = 'chat_info';
и ваша модель будет связана с таблицей chat_info (без режима множественного числа)