【问题标题】:CakePHP Custom REST RoutesCakePHP 自定义 REST 路由
【发布时间】:2014-08-22 21:23:12
【问题描述】:

我使用 CakePHP 和 Backbone.js 作为前端,所以我想让 CakePHP 的 REST 路由正常工作,但我真的不想使用默认的 REST 路由。

例如,我希望能够 POST 到 http://example.com/cards/search.json 并获得 JSON 格式的结果列表,但是我得到了 200 状态码和一个空白响应,这让我认为路由无法正常工作.

我通过将控制器的search() 方法更改为add(),使用默认 REST 路由测试了我的代码,但我希望能够正确设置和使用自定义 REST 路由。

Router::connect(
    "/cards/search",
    array(
        "[method]" => "POST",
        "controller" => "cards",
        "action" => "search"            
    )
);
Router::mapResources('cards');
Router::parseExtensions('json');

我的routes.php 的代码在上面,我不完全确定它为什么不工作......要么是因为这方面的文档有点简单,要么我只是不太了解路由。

【问题讨论】:

    标签: rest cakephp


    【解决方案1】:

    你可以在这个url中得到json输出:

    http://localhost:{port}/{api* name in config @ app/core}/{controller name}/{things after api_ in function name}/{input parameters}.json
    

    阅读更多here

    您可能需要更改路由才能更改名称 api

    中的任何东西
    Configure::write('Routing.prefixes', array('master', 'api'));
    

    在 app/config 中的 core.php 中 随时发表评论,并在配置中分享您的 core.php 以获得更多解释。

    【讨论】:

    • 感谢Gunner的回复,不过我还是有点困惑。我的core.php 文件中没有任何 Routing.Prefixes 设置,我在问题中列出的 URL 看起来应该根据您提供的格式工作 http://sample.com/cards/search.json,以及通过 POST 发送的数据我正在工作在cards 控制器中使用search() 操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2011-06-29
    • 1970-01-01
    • 2011-04-04
    • 2011-11-24
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多