【发布时间】:2014-10-03 15:36:05
【问题描述】:
我正在使用 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;
});
非常感谢您的帮助,因为我被困在这个问题上,无法继续该项目。
非常感谢您抽出宝贵时间。
【问题讨论】:
-
您是否在引导过程中的某个位置设置了 $di 变量?该错误似乎表明它正在寻找 $di,但找到了 null。
标签: php phalcon phalcon-routing