2015-10-18 82 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

但我仍然想知道,艺术的状态将如何与我的第一次尝试。有人可以帮忙吗? –