我正在使用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
我在带有add的同一services.php文件中定义了一些其他路由,它们没有问题,例如:
$router->add('/oportunidades-trabajo', array(
'controller' => 'page',
'action' => 'oportunidadesTrabajo'
));
工作非常好。我试过删除名称空间,更改控制器,使用short 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;
});
我将非常感谢你的帮助,因为我被困在这个问题上,我无法继续这个项目。
提前感谢您抽出时间。
$router->handle();
不能在服务定义中调用。
只需删除$router->handle();
来源:http://forum.phalconphp.com/discussion/3623/strange-error-with-the-phalcon-router