我想要完成的是以下
$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));
但我想知道是否有更好的解决方法。
任何建议或答案都非常感谢! 谢谢!
答案 0 :(得分:1)
确保设置基本uri并确保您的路线以'/'
开头。这是最常见的问题。由于您使用的是micro,我猜您不必担心setBaseUri()
,因为它未在您的应用中使用。
$di->set('url', function(){
$url = new Phalcon\Mvc\Url();
$url->setBaseUri('/');
return $url;
});
$collection->setPrefix('/api/brands');