Документация по Laravel 5 описывает два способа назначения Middleware:
- Назначьте промежуточное ПО на маршрут контроллера.
- Укажите промежуточное ПО в конструкторе вашего контроллера.
Однако я понял, что любой код, написанный в функции __construct()
контроллеров, будет запускаться до промежуточного программного обеспечения, даже если промежуточное программное обеспечение объявлено в первой строке функции контроллера __construct
.
Я нашел сообщение об ошибке для аналогичной проблемы в репозитории Laravel github. Однако сотрудник закрыл вопрос, заявив: "Это ожидаемое поведение".
Я думаю, что middleware
должно быть "слоями" вне приложения, в то время как функция __construct
является частью приложения.
Почему функция __construct
выполняется до промежуточного программного обеспечения (если оно объявлено до запуска промежуточного программного обеспечения)? и почему это ожидается?