@MarkLb

Как организовать обработку формы на всех страницах шаблона?

Здравствуйте.

Есть форма подписки, она располагается в footer'е, соответственно нужна её обработка на всех страницах, где используется текущий layout.

lc5BN.jpg

По информации, которую я нашёл, лучше всего делать через виджет. Но не могу понять, как правильно это реализовать. Как передавать параметр на виджет? Также был вариант задать action явно:
$form = ActiveForm::begin([
    'action' => 'site/subscribe', 
    ...
]);


Но модель куда передавать модель в таком случае?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
Модель можно вызвать напрямую в layouts или передать через context
В первом случае:
$model = new ModelName();

$form->field($model, 'attribute')->textInput()

Во втором случае:
// в контролере
public $var
$var = new ModelName();
// в layout
$model = $this->context->var
$form->field($model, 'attribute')->textInput();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы