Zend Db Table Abstract向行添加新字段

时间:2011-04-24 07:04:07

标签: php zend-framework zend-db-table

我曾经发过这个问题,但根本没有回答,这一次,这个问题最好能够解决,所以我更容易理解我的需要。

我用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 个答案:

答案 0 :(得分:3)

我认为您可以做的是创建自己的自定义新闻行类:

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');

}

希望这有帮助。