Есть ли способ визуализировать частичное представление, которое содержит часть формы, основная часть которой находится в другом файле представления с AJAX?
Я точно имею в виду одну переменную формы:
`<?php $form = ActiveForm::begin(['enableAjaxValidation' => true,]); ?>`
Например :
контроллер
public function actionOlddetform()
{
return $this->renderAjax('_olddet');
}
Посмотреть
<?php $form = ActiveForm::begin(['enableAjaxValidation' => true,]); ?>
<?= $form->field($model, 'date')->input() ?>
<?= $form->field($model, 'annotations')->textarea(['rows' => 3]) ?>
<div id="details-form"></div>
<?php ActiveForm::end(); ?>
Часть формы включена в AJAX для details-form
контейнер зависит от date
значение. Я знаю, как проверить дату и показать любое содержимое этого частичного представления, но когда я хочу добавить часть формы, я получаю сообщение об ошибке:
PHP Notice 'yii\base\ErrorException' with message 'Undefined variable: form'
Кажется, вы забыли передать model
на ваш взгляд:
public function actionOlddetform()
{
return $this->renderAjax('_olddet', ['model' => $dataModel]);
}
И если вы хотите визуализировать «подэлементы» из основного представления, вам также необходимо передать туда переменные (даже если я не вижу вызова рендеринга в вашем представлении):
<?= $this->render('_formPart', ['form' => $form, 'model' => $model]) ?>
Других решений пока нет …