Следующая проблема, с которой я столкнулся, выглядит с ошибкой;
An error occurred
An error occurred during execution; please try again later.
Additional information:
Zend\Mvc\Exception\DomainException
File: .../vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/Url.php:63
Message:
Url plugin requires that controller event compose a router; none found
Я никогда не сталкивался с этой проблемой, пока я пытаюсь перенаправить с моего контроллера. Допустим, я реализую следующую функцию для перенаправления в моем контроллере, которая выдает ошибку выше;
public function __construct()
{
# Get user identity
$auth = new AuthenticationService();
if ($auth->hasIdentity()) {
$this->identity = $auth->getIdentity();
} else {
$this->redirect()->toRoute('admin/login');
}
}
Маршрутизация существует, поскольку я могу достигнуть site.com/admin/login/.. login - это ребенок администратора, поэтому запись должна быть хорошей. Я задаюсь вопросом, что происходит не так, и как исправить эту проблему или даже, где искать ее было бы хорошей отправной точкой.
Благодарю!
Если вы посмотрите на ошибку, похоже, что вы не можете использовать плагин перенаправления во время конструкций контроллера.
Url plugin requires that controller event compose a router; none found
может лучше поставить этот код в функцию onDispatch, как это.
public function onDispatch(MvcEvent $e)
{
# Get user identity
$auth = new AuthenticationService();
if ($auth->hasIdentity()) {
$this->identity = $auth->getIdentity();
} else {
return $this->redirect()->toRoute('admin/login');
}
return parent::onDispatch($e);
}
не забудьте вернуть перенаправление, так как в противном случае действие все равно будет выполнено.