Изменить http код ответа для кастомной страницы

Когда вы создаёте свою страницу, используя контроллер, то возможности тут же выбрать какой код ответа она возвращает нет. Контроллер занимается только формированием содержания страницы.

Таким образом, страница возвращается с кодом 200. Что делать, если нужно вернуть другой код?

В таком случает нужно модифицировать ответ сервера, подписавшись на событие KernelEvents::RESPONSE. Пример реализации подписки на события можно посмотреть вот тут.

Допустим, вы определили контроллер и описали его в my_module.routing.yml следующим образом:

Тогда реализация подписки может выглядеть так:

Так для указанного маршрута вы меняете код ответа (в примере — 401).

Не забудьте добавить подписчика в my_module.services.yml:

Мало букафф? Читайте есчо !

Дополняем результаты views

Февраль 14, 2024 г.

Пример того, как можно дополнить результаты views в Drupal 9/10. Задача - вывести для статьи блок со связанными публикациями. В начале нужно было просто выводить последние статьи того же типа, а потом у заказчика возникло желание переопределять выдачу, ...

Читать

Чем заменить drupal_get_path() в Drupal 9/10

Январь 9, 2024 г.

Функция считается устаревшей, начиная с версии ядра 9.3, в 10-й версии функция удалена из кода. В новом API нужно воспользоваться одним из сервисов ядра, которые реализуют нужную функцию. Сервис extension.list.module - реализует функции, связанные ...

Читать

Ошибка: Migration is busy with another operation

Апрель 19, 2024 г.

При отладке миграций в Drupal могут возникать состояния, когда миграция не прошла по какой то причине (ошибке) и подвисла в состоянии отличном от Idle. ...

Читать

Реализация формы поиска товаров

Май 11, 2023 г.

См. основной материал для введения. Форма в нашем случае не требует отправки/проверки данных, и реализует только два метода - getFormId и buildForm. Хотя форма и не содержит кнопки submit, но все равно будет реагировать на отправку данных, поэтому ...

Читать
 

Комментарии к «Изменить http код ответа для кастомной страницы»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: