Database 避免连接到视图中的数据库
在IndexController中,我从表中检索数据并将其发送到视图。 在视图中,我执行foreach循环并显示它。 需要从数据库中获取一种类型的数据,因此需要在视图中链接到数据库以获取它Database 避免连接到视图中的数据库,database,zend-framework,zend-db-table,Database,Zend Framework,Zend Db Table,在IndexController中,我从表中检索数据并将其发送到视图。 在视图中,我执行foreach循环并显示它。 需要从数据库中获取一种类型的数据,因此需要在视图中链接到数据库以获取它 <?php foreach ($this->datas as $data ): > <div id="<?php echo $data->data_id ?>"></div> <?php $Data = Zend_Db::fact
<?php foreach ($this->datas as $data ): >
<div id="<?php echo $data->data_id ?>"></div>
<?php
$Data = Zend_Db::factory('pdo_mysql', $config);
$select = $Data->select()
->FROM('data')
->WHERE('data_id = ?',$data->anchor);
$name = $Data->fetchRow($select);
?>
<span class="nick_name"><?php echo $name?></span>
<?php endif; ?>
如何避免连接到视图中的数据库?简单:不要这样做
只需将DB逻辑从您的视图中移开。在控制器或(更好的)模型中执行
foreach
循环,获取每个元素所需的数据。或者,如果可能的话,使用JOIN
直接组合结果。您需要一个中间层代表您进行连接,并将结果返回到您的视图。Zend能做到吗?你能把数据加入到原始查询中吗?此外,您确实不希望连接到循环中的数据库这可能是使用类似getData()
的方法的域模型的好地方,因此可以延迟加载数据。:)