2011-04-24 58 views
2

我曾經發布過這個問題,但根本沒有答案,這一次,問題最好是格式化的,所以它會更容易理解我需要的東西。Zend Db Table摘要在行中添加新字段

我創建了一個模型Zend_Db_Table_Abstract

添加的PrimaryKey和表名,一切ok。

然後,我執行代碼來檢索字體。

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

有什麼辦法來添加新聞行裏面的圖片?然後在視圖中我可以循環和打印圖像。

感謝和最好的關注。 對不起,我的英語不好。

回答

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

} 

希望這有助於。

+0

非常感謝Marcin!幫了很多。 – 2011-04-25 02:42:29

+0

換句話說,使用Doctrine:D – 2012-10-03 13:40:20