【问题标题】:Phalcon router addGet errorPhalcon路由器addGet错误
【发布时间】: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


【解决方案1】:

$router->handle(); 不得在服务定义中调用。

只需删除$router->handle();

来源:http://forum.phalconphp.com/discussion/3623/strange-error-with-the-phalcon-router

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2018-06-07
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多