Zend Db Table Abstract добавить новое поле в строку - PullRequest
2 голосов
/ 24 апреля 2011

Я однажды опубликовал этот вопрос, но не получил никакого ответа, на этот раз вопрос лучше отформатировать, поэтому будет легче понять, что мне нужно.

Я создал модель с Zend_Db_Table_Abstract

Добавьте primaryKey и имя таблицы, все в порядке.

Затем я выполнил код для получения шрифтов.

$db = new App_Model_News();

$news = $db->fetchAll("visible = 1", "published_on DESC");

foreach ($news as $i => $new) {

    $images = $this->_helper->News->first_image($new);

}

Этот метод работает, но мне нужно получить два оператора представления:

$this->view->news = $news;
$this->view->images = $images;

Что мне нужно, так это объединить эти два результата и сделать что-то вроде этого.

$db = new App_Model_News();

$news = $db->fetchAll("visible = 1", "published_on DESC");

foreach ($news as $i => $new) {

    $news[$i]->images = $this->_helper->News->first_image($new);

}
$this->view->news = $news;

Я не могу этого сделать, потому что Аннотация является ассоциативно связанной с массивом, моя Модель выглядит следующим образом:

class App_Model_News extends Zend_Db_Table_Abstract{

    protected $_name = 'news';
    protected $_primary = 'id';

    protected $_dependentTables = array('ImagesNews');

}

class ImagesNews extends Zend_Db_Table_Abstract{

    protected $_name = 'news_imagens';
    protected $_primary = 'id_new';

    protected $_referenceMap    = array(
        'Arquivos' => array(
            'columns'           => 'id_new',
            'refTableClass'     => 'App_Model_News',
            'refColumns'        => 'id'
        ));    
}

Есть ли способ добавить изображения в строки новостей? Тогда при виде я мог бы зациклить и напечатать изображения.

Спасибо и с уважением. Извините за мой плохой английский.

1 Ответ

3 голосов
/ 24 апреля 2011

Я думаю, что вы могли бы создать собственный класс строк новостей:

class App_Model_Row_News extends Zend_Db_Table_Row_Abstract {
     public $images;
}

Тогда вы бы сказали App_Model_News использовать пользовательский класс строк:

class App_Model_News extends Zend_Db_Table_Abstract{

    protected $_name = 'news';
    protected $_primary = 'id';
    protected $_rowClass = 'App_Model_Row_News';

    protected $_dependentTables = array('ImagesNews');

}

Надеюсь, это поможет.

...