在控制器中准备数据,而不是在视图中(yii)

时间:2014-04-04 08:18:03

标签: yii controller

我在我的Yii webapp中制作了“变速箱”-dropDownList,一切都很完美,它在DB中存储了下一个值(1 =>手动,2 =>手动 - 自动(tiptronick),3 =>自动) ,现在我将它显示在模板(view.php)中,带有如此不漂亮的if-block:

齿轮箱: “     if($ model-> gearbox == 1){         echo'Manual';     } elseif($ model-> gearbox == 2){         echo'Manual-Automat';     } else {         echo'Automat';     } “

请告诉我,我应该在控制器中准备这些数据吗?如果有可能,你能告诉我,它是怎么做的。

2 个答案:

答案 0 :(得分:1)

另一种选择是使用virtual attribute将其添加到您的模型中,如下所示:

public function getGearboxName() {
    if ($model->gearbox == 1) {
        return 'Manual';
    } elseif($model->gearbox == 2) {
        return 'Manual-Automat';
    } else {
        return 'Automat';
    }
}

这样您就可以通过模型中的gearboxName属性访问该值:

echo $model->gearboxName;

答案 1 :(得分:0)

我认为在这个简单的情况下没有太多事情要做,但你可以在你的控制器中准备它:

<强>控制器:

  if ($model->gearbox == 1) { 
     $gearbox = 'Manual'; 
  } elseif($model->gearbox == 2) { 
     $gearbox = 'Manual-Automat'; 
  } else { 
     $gearbox = 'Automat'; 
  } 

$this->render('view',array('gearbox'=>$gearbox))

查看:

echo $gearbox;