2014-07-01 3 views
0

Я не могу зарегистрировать пользовательские маршруты в phalcon. Я понятия не имею, в чем проблема.

$di['router'] = function() { 
     return require __DIR__ . '/config/routes.php'; 
    }; 

в маршрутах файл у меня есть

$router = new Phalcon\Mvc\Router(); 

//$router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI); 

    $router->add('/confirm/{code}/{email}', array(
    'controller' => 'user_control', 
    'action' => 'confirmEmail' 
)); 

/*$router->add('/reset-password/{code}/{email}', array(
    'controller' => 'user_control', 
    'action' => 'resetPassword' 
    ));*/ 

return $router; 

Когда я иду в /confirm/32sadfasdfwef/[email protected]

я получаю

Ilm\Frontend\Controllers\ConfirmController handler class cannot be loaded 

многопротокольным модуль заявление.

And if i do die() in $di['router'] it does not do anything. 

ответ

0

Я предполагаю, что вам не нужен двойной return. У вас есть один в своем включении и один в вашем сервисе. Либо удалите его из routes.php и сделать это:

$di['router'] = function() { 
    require __DIR__ . '/config/routes.php'; 
    return $router; 
}; 

Или оставить его там и сделать это:

$di['router'] = function() { 
    require __DIR__ . '/config/routes.php'; 
}; 

Первый вариант кажется более естественным, ИМО. Если это многомодульное приложение, вам также нужно указать модуль на своих маршрутах, посмотрите here.

$router->add('/:controller/:action/:params', array(
    'module' => "frontend", 
    'controller' => 1, 
    'action' => 2, 
    'params' => 3 
))->setName('front-full'); 
Смежные вопросы