如何将变量从actionCreate传递给_form.php?

时间:2017-04-04 13:32:36

标签: yii yii2

我有一个控制器的创建动作,我将$ ingredients数组传递给视图

public function actionCreate()
{
    return $this->render('create', 
        ['model' => $model, 'ingredients' => Ingredient::find()->all()]
    );
}

在create.php中我可以访问$ ingredients变量。 但是,如果我尝试在_form.php中访问$ ingredients

<?= $form->field($model, 'ingredient_id')->checkbox(
    ArrayHelper::map($ingredients, 'id', 'name')
) ?> 

我收到错误

Undefined variable: ingredients

3 个答案:

答案 0 :(得分:1)

您正在将变量传递到create视图,而您的窗口小部件位于另一个名为_form的视图中。转到create视图,确保所有变量都传递到_form视图。

答案 1 :(得分:1)

这可以通过两种方式完成 //首先像这样呈现视图文件

    $params = [];
    $params['eqpType'] = $eqpType;
    $params['discountModel'] = $discountModel;
    $params['tabActive'] = $tabActive;
    $params['discountLabel'] = $discountLabel;

    echo $this->render('_form', $params);

//或者您可以直接包含代码文件..在这种情况下,不需要传递所有参数

    <?php include_once "_form.php";?>

答案 2 :(得分:1)

create.php

中的

 <?php echo $this->render('_form', [
      'model' => $model,
      'ingredients' => $ingredients
 ]) ?>