CakePHP - REST POST功能无法使用默认映射

时间:2011-12-22 09:30:17

标签: php cakephp rest

我是CakePHP的新手,我正在尝试配置我的网络应用程序以使用REST。

我正在使用CakePHP版本2.0.4。

在CakePHP Cookbook之后,我在routes.php文件中输入了以下内容('Apples'指向ApplesController.php控制器):

Router::mapResources('Apples');
Router::parseExtensions();

在控制器本身(ApplesController.php)中,我添加了以下组件:

public $components = array('RequestHandler');

同样在控制器中,我有一个添加动作,它回显一个字符串(如下所示):

function add() {
    echo 'The add action has been called';
}

最后,我创建了一个视图(index.ctp位于app / View / apples /中),该视图使用带有POST方法的HTML表单和要提交的操作“/ apples /”。

<h2>Home<h2>
<form action="/apples/" method="post">
   <input type="submit" value="Submit" />
</form>

现在根据CakePHP Bakery(http://bakery.cakephp.org/articles/rightwayindia/2010/01/11/restful-web-application-development-in-cakephp),mapResources应该自动映射POST对于routes.php文件中指定的控制器的“添加”操作,因此当单击该按钮时,应该在添加操作中回显该字符串。

仅当您将HTML中的action参数(在index.ctp中)更改为:

时,此方法才有效
<form action="/apples/add" method="post">

并明确指向添加操作。

我可能错了,但我认为通过在routes.php文件中配置REST应该自动将特定的REST方法映射到添加,编辑,删除等操作。(在上面链接的网页上说明)到mapResources函数的参数中所述的控制器。

我也尝试过自定义REST路由,但这也无效。但是,它可以使用默认映射而不是自定义它。

任何建议将不胜感激。感谢。

0 个答案:

没有答案