处理程序不匹配的微集合路由

时间:2014-09-01 06:11:35

标签: phalcon phalcon-routing

我想要完成的是以下

$collection = new Phalcon\Mvc\Micro();
$collection->setHandler(new \app\Controllers\Brands());
$collection->setPrefix('api/brands');
$collection->get('','actionIndex');
$collection->post('/search','actionSearch');
$collection->get('/{id:[0-9]+}','resourceGet');
$collection->put('/{id:[0-9]+}','resourcePut');
$collection->delete('/{id:[0-9]+}','resourceDelete');

$app->mount($collection);

然而在将{URI> 作为www.domain.com/api/brands/search时,没有路由匹配,但奇怪的是应用程序本身可以处理路由(如果指定)在剧本上作为

$app->handle('api/brands/search');

快速而肮脏的修复对于此将是以下

$app->handle(substr($_GET['_url'], 1));

但我想知道是否有更好的解决方法。

任何建议或答案都非常感谢! 谢谢!

1 个答案:

答案 0 :(得分:1)

确保设置基本uri并确保您的路线以'/'开头。这是最常见的问题。由于您使用的是micro,我猜您不必担心setBaseUri(),因为它未在您的应用中使用。

$di->set('url', function(){
    $url = new Phalcon\Mvc\Url();
    $url->setBaseUri('/');
    return $url;
});

$collection->setPrefix('/api/brands');