Thursday, December 22, 2011

CakePHP - REST POST functionality not working with default mapping

down vote favorite
share [fb] share [tw]


I am very new to CakePHP and am attempting to configure my web app to
use REST.

I am using CakePHP version 2.0.4.

Following the CakePHP Cookbook, I have entered the following into the
routes.php file ('Apples' pointing to the ApplesController.php
controller):

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

and in the controller itself (ApplesController.php), I have added the
following component:

public $components = array('RequestHandler');

Also in the controller, I have an add action which echo's a string (as
follows):

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

Finally, I created a view (index.ctp located in app/View/apples/)
which uses a HTML form with the method POST and the action "/apples/"
to submit.

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

Now according to the the CakePHP Bakery (http://bakery.cakephp.org/
articles/rightwayindia/2010/01/11/restful-web-application-development-
in-cakephp
), the mapResources should automatically map POST to the
'add' action of the controller specified in the routes.php file,
therefore when the button is clicked, should echo the string in the
add action.

This only works when you change the action parameter in the HTML (in
index.ctp) to:

<form action="/apples/add" method="post">

and explicitly point to the add action.

I may be wrong, but I thought that by configuring REST in the
routes.php file should automatically map the specific REST methods to
the actions such as add, edit, delete etc.. (stated on the web page
linked above) to the controller stated in the paramater of the
mapResources function.

I have also tried custom REST routing but this is also not working.
However, It would be nice for it to work with default mapping rather
than customising it.

Any suggestions would be appreciated. Thanks.

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: