如何在actionView中为多个条件提供yii中的渲染

时间:2015-03-31 05:55:48

标签: php yii

我有一个模块,它具有不同的渲染,具有不同的条件,因此我使用了像

    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个这样的条件,所以我该如何处理?比这简单吗?感谢

2 个答案:

答案 0 :(得分:2)

有几种方法。

  1. 切换案例以将视图和模型数据作为数组返回。
  2. 使$ p_id和查看名称更具意义。甚至,作为:

    $views = array( 'p_id' => 'corresponding_view file' );

  3. 然后,将其用作$this->loadModel($p_id, $views[$p_id])

答案 1 :(得分:0)

此问题有两种解决方案:

  1. 在控制器内添加条件并根据条件渲染多个视图。(正如您所做)

  2. 只有一个视图并在视图中添加条件,并根据条件显示所需的视图部分。

  3. 所有这两种解决方案都是可以实现的,但我相信第一种解决方案更好。因为第二种解决方案与MVC结构不一致。 将逻辑放在视图中并不是一个好主意。所以我认为根据条件渲染不同的视图会更好。