我正在使用 PHP Phalcon 框架开发一个网站,但我真的遇到了路由器的问题,我开始了。
为了限制您的路由匹配的 HTTP 方法,我使用以下声明:
$router->addGet('/admin/paginas', array(
'namespace' => 'Backend\Controllers',
'controller' => 'pagina',
'action' => 'list'
));
但它失败并出现以下错误:
Unexpected value type: expected object implementing Phalcon\DiInterface, null given
我在同一个 services.php 文件中使用 add 定义了一些其他路由,它们没有问题,例如:
$router->add('/oportunidades-trabajo', array(
'controller' => 'page',
'action' => 'oportunidadesTrabajo'
));
工作得很好。我试过删除命名空间、更改控制器、使用短 sintax、使用 ->via() 而不是 addGet,但没有什么能解决我的问题。
如果我删除此路线声明,一切正常。
这是路由器的完整声明:
$di->set('router', function () {
$router = new Router(false);
$router->removeExtraSlashes(true);
# FRONT END
$router->add('/oportunidades-trabajo', array(
'controller' => 'page',
'action' => 'oportunidadesTrabajo'
));
# BACK END - Paginas
# list
$router->addGet('/admin/paginas', array(
'namespace' => 'Backend\Controllers',
'controller' => 'pagina',
'action' => 'list'
));
# NOT FOUND
$router->notFound(array(
'controller' => 'page',
'action' => 'page404'
));
$router->handle();
return $router;
});
我将非常感谢您的帮助,因为我坚持这一点,我无法继续该项目。
非常感谢您抽出宝贵时间。