使用zend框架浏览表

时间:2012-09-13 09:51:33

标签: php zend-framework

我开始使用Zend Framework。我一直在这里和那里做一些教程。

在我的一个观点中,我有这段代码:

<?php foreach($this->Instruments as $Instrument) : ?>
    <tr>
        <td><?php echo $this->escape($Instrument->nom);?></td>
        <td><?php echo $this->escape($Instrument->idtypeofinstrument);?></td>
        <td>
        </td>
    </tr>
<?php endforeach; ?>

idtypeofinstrument是外键,现在只显示id。我想为用户显示更明确的内容。

我的桌子:

+------------------+
| typeofinstrument |
+------------------+
| id               | -- primary key
| typeofinstrument | -- what I want to display
+------------------+

+--------------------+
|     instrument     |
+--------------------+
| id                 | -- primary key
| name               |
| idtypeofinstrument | -- foreign key
+--------------------+

1 个答案:

答案 0 :(得分:1)

这样做的简单方法,不是非常正确而是简单。

//escape() removed for clarity
<?php foreach($this->Instruments as $Instrument) : ?>
    <tr>
        <td><?php echo $Instrument->nom;?></td>
        <?php $table = new Application_Model_DbTable_Typeofinstument();
              $select = $table->select()->where('id = ?',$Instrument->idtypeofinstrument);
              $type = $table->fetchRow($select); ?>
        <td><?php echo $type->typeofinstrument;?></td>
        <td>
        </td>
    </tr>
<?php endforeach; ?>

要以更正确的方式执行此操作,需要使用映射器,ORM或其他解决方案将表中的数据映射到工具对象。

目标是让原始代码返回您想要的数据。

进一步了解退房:

http://phpmaster.com/building-a-domain-model/

http://phpmaster.com/integrating-the-data-mappers/

这些文章帮助我理解了映射器。