gpt4 book ai didi

php - 当Phalcon中不存在Controller时如何回退到IndexController?

转载 作者:行者123 更新时间:2023-12-03 18:38:34 24 4
gpt4 key购买 nike

当我输入网址时:
http://localhost/asdfasdfasdcxccarf
Phalcon 给我这个信息:
PhalconException: AsdfasdfasdcxccarfController handler class cannot be loaded
这是合乎逻辑的,因为这个 Controller 不存在。

但是,如何让 Phalcon 将每个没有 Controller 的错误 url 重定向到我的默认 Controller IndexController?

最佳答案

您可以将以下调度程序服务添加到依赖注入(inject)容器。它将检查内部 Phalcon 错误(例如错误的 Controller )并将用户转发到指定的 Controller 和操作:

$di->set('dispatcher', function() {

$eventsManager = new \Phalcon\Events\Manager();

$eventsManager->attach("dispatch:beforeException", function($event, $dispatcher, $exception) {

//Handle 404 exceptions
if ($exception instanceof \Phalcon\Mvc\Dispatcher\Exception) {
$dispatcher->forward(array(
'controller' => 'index',
'action' => 'show404'
));
return false;
}

//Handle other exceptions
$dispatcher->forward(array(
'controller' => 'index',
'action' => 'show503'
));

return false;
});

$dispatcher = new \Phalcon\Mvc\Dispatcher();

//Bind the EventsManager to the dispatcher
$dispatcher->setEventsManager($eventsManager);

return $dispatcher;

}, true);

关于php - 当Phalcon中不存在Controller时如何回退到IndexController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com