【问题标题】:Micro Collection of Routes with handler not matched处理程序不匹配的路由微集合
【发布时间】:2014-09-01 06:11:35
【问题描述】:

我想要完成的是以下

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

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

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

【问题讨论】:

    标签: phalcon phalcon-routing


    【解决方案1】:

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

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

    【讨论】:

    • 我不敢相信我已经研究了这么久...我什至为该死的路由器类编写了测试...谢谢 Ian..
    • 我知道,Phalcon 调试起来很痛苦,但是嘿——有机会通过示例学习 C :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2012-01-20
    • 1970-01-01
    • 2017-05-04
    • 2017-08-29
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多