После обновления с Cake 1.3 до 2.0 я получаю ошибки в таблице для всех моделей, которые используют базы данных просмотров, а не таблиц. Мои модели с использованием таблиц все еще работают нормально. Изменение этих моделей для использования таблиц устраняет проблему, но мне нужны представления.Используйте представление базы данных для модели в CakePHP 2.0
В прошлом это работало, как this question shows; представления работали точно так же, как и таблицы. Однако после переезда в торт 2.0 я получаю:
Error: Database table myView for model myModel was not found
Вот класс пример Модель:
class Hauler extends AppModel
{
var $useTable = 'hauler_view';
var $primaryKey = 'id';
var $useDbConfig = 'default';
}
Точка зрения hauler_view
существует и работает в приложении в 1.3. Копирование одних и тех же данных из представления в физическую таблицу будет работать, если я настрою модель вместо этой физической таблицы.
Я подтвердил, что я могу получить доступ к представлениям базы данных через исходные SQL-функции Cake, поэтому я могу получить доступ к этим представлениям, это просто, что модели не видят «таблицы».
Я использую SQL Server 2005 с драйвером sqlsrv, если это имеет значение. На моем сервере установлен собственный клиент SQL Server 2008, который позволяет этой версии тортов получить доступ к SQL Server.
Есть ли способ, чтобы модели в CakePHP 2.0 использовали представления, а не таблицы?
Я решил this related problem, поэтому теперь я знаю, что мой драйвер базы данных работает правильно и не является проблемой.
Вы имеете в виду, что это в файле для класса модели или контроллера, открывающего модель? В любом случае это не сработало (поскольку он расширяет AppModel, он должен наследовать модель в любом случае). Я действительно не знаю, что отличает эти модели взглядов ... –
да, CakePHP 2, необходимо. Интересно, что все еще не работает, вы можете поместить всю модель кода? –
Вот и весь класс кода (который в этом случае мог быть выведен на самом деле), и я не настраиваю AppModel. Сейчас я работаю над предложением cdburgess –