Я разрабатываю веб-сайт с использованием PHP Phalcon Framework, и я действительно застрял в проблеме с маршрутизатором, здесь я иду.
Чтобы ограничить 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'
));
Работает отлично. Я попытался удалить пространство имен, изменить контроллер, используя короткий синтаксис, используя -> 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
Других решений пока нет …