Почему exit () в базовом классе не завершает дочерние классы?

В методе OnConstruct () базового класса я использую функцию exit () после перенаправления на страницу ошибки, чтобы завершить последующий код, включая все коды дочерних классов.

Вот мой код

Но это не работает. Вот псевдокод ниже:

  • когда я открываю страницу child / index, она перенаправляется на страницу ошибки, и я получаю две строки в файле /tmp/debug.log:
  • доступ: конструкция базового класса
  • доступ: индекс дочернего класса

Я не знаю, почему выводится строка «access: index of child class» в дочернем классе. Моя цель — завершить все после exit (), включая все дочерние классы.

-1

Решение

Прямо из документация по контроллеру.

Помните, что метод onConstruct () выполняется, даже если действие
выполняется не существует в контроллере или пользователь не имеет
доступ к нему (в соответствии с пользовательским контролем доступа, предоставляемым
разработчик).

Метод initialize () вызывается, только если событие beforeExecuteRoute
выполнен с успехом. Это позволяет избежать применения логики в
инициализатор не может быть выполнен без авторизации.

Я бы предложил использовать событие beforeExecuteRoute который запускается на событиях и контроллерах и позволяет вам остановить выполнение, если вы вернете false.

public function beforeExecuteRoute(Dispatcher $dispatcher)
{
return false; //stop operation
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector