【发布时间】:2016-03-18 09:26:29
【问题描述】:
我已经设置了自定义路由,我的 routes.php 目前看起来是这样的:
<?php
$router = new Phalcon\Mvc\Router();
$router->add('athlete/{username}', array(
'controller' => 'athlete',
'action' => 'index',
));
return $router;
在我的 services.php 中,我正在设置路由器:
$di->set('router', function() {
return require __DIR__ . '/routes.php';
});
我的 AthleteController 的 index Action 看起来像这样,出于测试目的,我将参数传递给视图 (username):
public function indexAction()
{
$username = $this->dispatcher->getParam('username');
if (!isset($username)) {
$user = Users::findFirstByUsername($this->auth->getIdentity()['username']);
} else {
$user = Users::findFirstByUsername($username);
if (!$user) {
$this->flash->error('Could not find this user');
}
}
$this->view->user = $user;
$this->view->username = $username;
$this->view->setTemplateBefore('public');
}
当我不使用自定义参数时,它可以工作,它可以找到用户并显示他的用户名。但是,当我使用例如 url athlete/kerowan 时,我收到错误 Action 'kerowan' was not found on handler 'athlete',据我了解,这意味着路由器设置不正确或没有捕获 URL。有什么想法吗?
【问题讨论】:
标签: php phalcon phalcon-routing