2015-10-18 88 views
1

我想要顯示兩個表格中關聯的列。Zend_Db在模型中使用連接

enter image description here

我的模型如下所示:

class Application_Model_DbTable_Ribadocsveranstaltung extends Zend_Db_Table_Abstract 
{ 
protected $_name = 'riba_docs'; 
protected $_primary = 'docid'; 


protected $reference_Map = array(
      'riba_veranstaltung' => array(
         'columns' => 'riba_veranstaltung', 
        'refTableClass' => 'riba_veranstaltung', 
        'refColumns'=>'id' 
      ) 
); 

我控制器讀取所有數據:

$documents = new Application_Model_DbTable_Ribadocsveranstaltung();  
$this->view->ribadocs = $documents->fetchAll(); 

在我看來,我有我建立這樣一個HTML表格輸出( snippet)

foreach($this->ribadocs as $document) : 
?> 

<tr> 
<td class="row_<?PHP echo $i % 2;?>"><?php echo 

this->escape($document->docid);?></td> 

問題:如何從我的表riba_veranstaltung中取得列veranstaltung而不是來自我的表riba_docs的外鍵字段veranstaltung?我已經閱讀了所有我能找到的教程,但是我沒有得到一個滿意的答案。

+0

可能需要將您的解決方案移動到答案並將您的請求添加到評論的更多信息,無論是在這裏還是在答案上。 :D –

回答

1

好吧,我被騙了一下。當然這種解決方案的工作原理:

$select=$this->select() 
    ->setIntegrityCheck(false) 
    ->from('riba_dokumente', array('docid','bezeichnung','quelle','typ', 'pfad', 'bemerkung')) 
    ->join('riba_veranstaltung', 'riba_veranstaltung.id = riba_dokumente.veranstaltung', array('riba_veranstaltung.veranstaltung')); 
    return $this->fetchAll($select); 
+0

但我仍然想知道,藝術的狀態將如何與我的第一次嘗試。有人可以幫忙嗎? –