2014-09-01 34 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