@po47

Как обработать форму для шаблона страницы (layouts/main.php)?

Форма в модальном окне должна использоваться на всех страницах сайта, следовательно пихаем ее в layouts.
Для обработки формы используется SiteController. Проблема в том, что если она находится в layouts/main.php , обработка формы через этот контроллер не выполняется. Если форму запихнуть в site/index.php - все работает.
В юзесах все тоже самое, проблема в обработке.

По сути, насколько я понимаю, форма для шаблона страницы также должна обрабатываться в SiteController и может не рендериться.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@MikUrrey
Если форма везде работает одинаково и не отправляет информацию, зависящую от текущего контента страницы, то лучше не упоминать ее в контроллерах.
А отправку данных выполнять либо (элегантно) AJAXом, либо (хардкорно) внутри формы передавать текущий URL и возвращать на него же после обработки формы. То есть, контроллер для неё написать всё же надо, но один и независимый.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@twopizza
<?php $form = ActiveForm::begin([
    'action' => '/your-controller/your-action'
]); ?>

А вы пропишите у формы атрибут action. И сможете выбирать какой собственно action контроллера для ее обработки выполнять.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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