В методе OnConstruct () базового класса я использую функцию exit () после перенаправления на страницу ошибки, чтобы завершить последующий код, включая все коды дочерних классов.
Но это не работает. Вот псевдокод ниже:
Я не знаю, почему выводится строка «access: index of child class» в дочернем классе. Моя цель — завершить все после exit (), включая все дочерние классы.
Прямо из документация по контроллеру.
Помните, что метод onConstruct () выполняется, даже если действие
выполняется не существует в контроллере или пользователь не имеет
доступ к нему (в соответствии с пользовательским контролем доступа, предоставляемым
разработчик).Метод initialize () вызывается, только если событие beforeExecuteRoute
выполнен с успехом. Это позволяет избежать применения логики в
инициализатор не может быть выполнен без авторизации.
Я бы предложил использовать событие beforeExecuteRoute который запускается на событиях и контроллерах и позволяет вам остановить выполнение, если вы вернете false.
public function beforeExecuteRoute(Dispatcher $dispatcher)
{
return false; //stop operation
}
Других решений пока нет …