2014-09-01 70 views
0

我试图做到的是以下微量收集不匹配

$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); 

然而没有做的时候,当匹配路由的URIwww.domain.com/api/brands/search,但这里的奇怪的是,如果在脚本指定为

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

一个快速和肮脏的修复程序的应用程序本身可以处理路由为这将是以下

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

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

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

回答

1

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

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

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

我简直不敢相信我已经绕来绕去这件事了这么久......我甚至写了测试的路由器再用类...谢谢你..伊恩我 – 2014-09-04 05:18:40

+1

知道的人,尔康是痛苦去调试,但嘿 - 有机会学习C的例子:) – 2014-09-04 09:18:15