Я новичок в CakePHP и пытаюсь настроить мое веб-приложение для использования REST.
Я использую CakePHP версии 2.0.4.
Следуя книге рецептов CakePHP, я вошел вСледуя в файле rout.php («Яблоки», указывающие на контроллер 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 /)яблок /), который использует HTML-форму с методом POST и действием «/ яблок /» для отправки.
<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 сдействие 'add' контроллера, указанного в файле rout.php, поэтому при нажатии кнопки следует повторить строку в действии add.
Это работает только при изменении параметра действия в HTML (в index.ctp):
<form action="/apples/add" method="post">
и явно указывают на действие добавления.
Я могу ошибаться, но я подумал, что, настроив REST в файле rout.phpдолжен автоматически сопоставлять конкретные методы REST с такими действиями, как добавление, редактирование, удаление и т. д. (указано на веб-странице, указанной выше) с контроллером, указанным в параметре функции mapResources.
У меня также естьпробовал пользовательскую маршрутизацию REST, но это тоже не работает.Однако было бы неплохо, чтобы он работал с отображением по умолчанию, а не настраивал его.
Любые предложения приветствуются.Спасибо.