Привет, я пытаюсь сделать API для отправки данных, инкапсулирующих с помощью json.
как сказал cakephp manual, я добавил расширения в routes.php
$routes->extensions(['json]);
и я сделал функцию индекса в контроллере.
public function index(){
$item = $this->Items->find('all');
$this->set(['items' => $items, '_serialize' => ['items']]);
}
вот проблема.
что я должен делать после этого, чтобы сделать api инкапсулированием с помощью json?
Пожалуйста помоги.
Спасибо
Согласно книге Cake 2.x(http://book.cakephp.org/2.0/en/development/rest.html)
Вы должны добавить это в свой файл route.php:
Router::mapResources('items');
Router::parseExtensions();
Затем в контроллере элементов добавьте RequestHandler к вашему массиву компонентов:
public $components = array('RequestHandler');
Затем в контроллере элементов добавьте свои методы в свой пример:
public function index() {
$recipes = $this->Items->find('all');
$this->set(array(
'items' => $items,
'_serialize' => array('items')
));
}
Примечание: в соответствии с соглашением о названиях моделей вы должны называть $this-> Item вместо $this-> Элементы, если ранее вы не определяли имя модели как "Item" (единственное значение) в файле модели объекта.
Наконец, API завершен, вы можете получить доступ к yourprojecturl/items.json и посмотреть результат json.
У меня были проблемы с кодом RicardoCamacho, пока я не использовал $recipes
, который является $this->Items->find('all');
в $this->set(array...
public function index() {
$recipes = $this->Items->find('all');
$this->set(array(
'items' => $recipes,
'_serialize' => array('items')
));
}