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

但是,当通过它的 URI as时,没有路由匹配www.domain.com/api/brands/search,但这里奇怪的是,如果在脚本中指定为,应用程序本身可以处理路由

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

一个快速而肮脏的解决方法如下

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

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

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

4

1 回答 1

1

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

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

$collection->setPrefix('/api/brands');
于 2014-09-02T08:49:48.820 回答