Zend_Db使用模型中的连接

时间:2015-10-18 14:27:04

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

我想显示两个相关的表格列。

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表输出,我就是这样构建的(片段)

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

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

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

问题:我怎样才能从我的表riba_veranstalt中获取列veranstaltung而不是我的表riba_docs中的外键字段veranstaltung?我已经阅读了迄今为止我能找到的所有教程,但我没有得到满意的答案。

1 个答案:

答案 0 :(得分: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);