【发布时间】:2014-03-06 22:29:49
【问题描述】:
我是 MVC 新手,我正在将一个以非 MVC 风格编写的项目移植到 MVC,但我遇到了一个问题,即需要在 View 中调用 Model 函数。
场景:
Table1 - 产品:
包含product_id、product_name等,每个产品可以有多个版本。
Table2 - 版本:
包含version_id、version_name、...、product_id 等。
现在在视图中我正在显示产品,并且在每个产品标题下我必须显示该产品的版本列表,在非 MVC 样式中它非常简单,我可以在视图中使用以下代码 sn-p:
foreach ($product as $row)
{
echo $row['product_name'];
if ($main->getVersionList($vresult,$row["product_id"]))
{
foreach ($vresult as $vrow)
{
echo $vrow['version_name'];
}
}
}
现在,我可以将产品数组从控制器传递给视图,但是每个需要生成对应于每个产品的 Version 数组呢?
更新:
这是我在控制器中的最终工作解决方案(使用地图):
$this->load->model ( 'product_mod' );
$data ['products'] = $this->product_mod->getProductList ();
$data ['versions'] = array ();
foreach ( $data ['products'] as $product )
{
$data ['versions'] [$product['product_id']] = $this->product_mod->getVersionList ( $product['product_id'] );
}
【问题讨论】:
-
刚刚更新了答案以满足您的需求。
-
感谢您发布您的解决方案——数组可能很难弄清楚——有趣的是它通常实现起来多么简单:-)
标签: php mysql database codeigniter model-view-controller