我是MVC的新手,我正在将一个用非MVC风格编写的项目移植到MVC,但是我遇到了一个需要在View中调用Model函数的问题.
表1 - 产品:
包含product_id,product_name等,并为每个产品可以有多个版本.
表2 - 版本:
包含version_id,version_name...,product_id等等.
现在在View中我正在显示产品,在每个产品标题下我必须显示该产品的版本列表,在非MVC样式中它非常简单,我可以在View中使用以下代码片段:
foreach ($product as $row)
{
echo $row['product_name'];
if ($main->getVersionList($vresult,$row["product_id"]))
{
foreach ($vresult as $vrow)
{
echo $vrow['version_name'];
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我可以将Product数组从控制器传递到视图,但是每个需要生成的每个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'] );
}
Run Code Online (Sandbox Code Playgroud)