массив в Zend_Db_Table_Row Zend Framework - PullRequest
4 голосов
/ 20 сентября 2009

Есть ли способ автоматического преобразования из массива в Zend_Db_Table_Row или Zend_Db_Table_Rowset?

Форма Zend_Db_Table_Row, вы можете получить массив с помощью toArray (), но мне было интересно, есть ли что-нибудь подобное, противоположное этому?

До сих пор я реализовывал функцию fill ($ data), которая взяла массив и затем установила атрибуты Zend_Db_Table_Row.

Конечно, ключи массива совпадают с атрибутами Zend_Db_Table_Row.

Thanx!

Ответы [ 2 ]

5 голосов
/ 20 сентября 2009

Проверьте метод fetchRow () Zend_Db_Table. Там вы можете найти это. Я полагаю, вы можете передать массив конструктору следующим образом:

$data = array(
        'table'   => $yourDbTableModel,
        'data'     => $yourArray,
        'readOnly' => $iGuessShouldBeZero,
        'stored'  => true
    );
$row = new Zend_Db_Table_Row($data);
2 голосов
/ 20 сентября 2009

Я думаю, что это должно сработать:

$myRow = new Zend_Db_Table_Row(
    array(
        'data' => array( /* your array with data */  )
    )
);

Итак, если вы предоставляете конструктору массив конфигурации, который содержит ключ 'data', который, в свою очередь, содержит массив с данными, у вас все получится.

Для получения дополнительной информации посмотрите Zend_Db_Table_Row_Abstract в вашей библиотеке Zend.

...