我有一个模块,它具有不同的渲染,具有不同的条件,因此我使用了像
if($p_id != '') {
$this->render('view', array(
'model' => $this->loadModel($id, 'Supplier'),
'modeln' => $this->loadModel($p_id, 'Permit'),
));
} else {
$this->render('view', array(
'model' => $this->loadModel($id, 'Supplier'),
));
它工作正常,但我有5到6个这样的条件,所以我该如何处理?比这简单吗?感谢
答案 0 :(得分:2)
有几种方法。
使$ p_id和查看名称更具意义。甚至,作为:
$views = array(
'p_id' => 'corresponding_view file'
);
然后,将其用作$this->loadModel($p_id, $views[$p_id])
,
答案 1 :(得分:0)
此问题有两种解决方案:
在控制器内添加条件并根据条件渲染多个视图。(正如您所做)
只有一个视图并在视图中添加条件,并根据条件显示所需的视图部分。
所有这两种解决方案都是可以实现的,但我相信第一种解决方案更好。因为第二种解决方案与MVC结构不一致。 将逻辑放在视图中并不是一个好主意。所以我认为根据条件渲染不同的视图会更好。