Вы можете создать экземпляр класса Row напрямую с помощью new
.
Но объекту Row необходимо знать, какие столбцы действительны для этой строки данных.
Нет магии сопоставить имя класса строки с соответствующим именем класса таблицы.Таким образом, строка сама не знает, к какому столу она принадлежит.Поэтому он не может догадаться, как написать SQL для выполнения операций вставки или обновления;он получает эти метаданные из соответствующего объекта Zend_Db_Table.Вы должны указать строке, какую таблицу использовать.
Если вы создаете объект строки с помощью new
, вы должны передать массив конфигурации в конструктор, включающий либо имя класса таблицы, либо экземпляр объектаэтот класс таблицы.
$userRow = new App_Row_User( array('table' => 'App_Table_User') );
Или
$userTable = new App_Table_User();
$userRow = new App_Row_User( array('table' => $userTable) );
Без допустимого объекта таблицы или имени класса создание экземпляра объекта Row с new
вызовет исключение.
Аналогично, save()
использует объект таблицы, вызывая методы insert()
или update()
.Без действительного табличного объекта метод Row save()
сгенерирует исключение.