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



我在我的 Yii 网络应用程序中制作了"gearbox"-dropDownList,一切完美,它以下一个值存储在数据库中( 1=> 手动,2=> 手动自动(tiptronick),3=> 自动),现在我用这样不漂亮的 if 块在模板(视图.php)中显示它:

变速器:" 如果 ($model->变速箱 == 1) { 回显"手动"; } elseif($model->gearbox == 2) { 回显"手动-自动"; } else { 回声"自动机"; }"

请告诉我,我应该在控制器中准备此类数据吗?如果可能的话,你能告诉我,它是如何做的吗?

另一种选择是使用虚拟属性将其添加到模型中,如下所示:

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

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

echo $model->gearboxName;
我认为

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

控制器:

  if ($model->gearbox == 1) { 
     $gearbox = 'Manual'; 
  } elseif($model->gearbox == 2) { 
     $gearbox = 'Manual-Automat'; 
  } else { 
     $gearbox = 'Automat'; 
  } 
$this->render('view',array('gearbox'=>$gearbox))

视图:

echo $gearbox;

最新更新