我有一个控制器的创建动作,我将$ 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
答案 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)
<?php echo $this->render('_form', [
'model' => $model,
'ingredients' => $ingredients
]) ?>