如何在视图中创建具有不同表单的页面(yii2)?

时间:2017-09-02 10:51:20

标签: php yii2

例如:

我们的表格book包含不同类型(HorrorTravelHistory)。

我们需要为这些图书创建方法update,但对于每种图书类型,我们都需要显示不同类型的图书。

我们如何实现这一目标?

以下代码是否正确?

public function actionUpdate($id)
{
    $model = $this->getType($id);

    switch ($model->type){
        case Book::TYPE_HORROR:
            return $this->render('update_horror', [
                'model' => $model
            ]);
            break;
        case Book::TYPE_TRAVEL:
            return $this->render('update_travel', [

            ]);
            break;
        case Book::TYPE_HISTORY:
            return $this->render('update_history', [

            ]);
    }

    throw new NotFoundHttpException;
}

1 个答案:

答案 0 :(得分:1)

你可以这样做

public function actionUpdate($id)
{
    $model = $this->getType($id);

    return $this->render('update_'. $model->type, ['model' => $model]);

}

其中视图名称必须为“update_”+ exactely $ model-> type result,

例如:horror = update_orror.php

这是用于重新查看视图,但不要忘记向表单添加操作方法,否则它将查找不存在的页面。

$form = ActiveForm::begin(['action' =>['book/update']])