Simple AJAX / JSON réponse avec CakePHP
Je suis nouveau sur cakePHP. Inutile de dire que je ne sais pas par où commencer la lecture. Lire plusieurs pages sur AJAX et JSON réponses et tout ce que je pouvais comprendre, c'est que quelque part, j'ai besoin d'utiliser Router::parseExtensions()
et RequestHandlerComponent
, mais aucun n'a eu un exemple de code que j'ai pu lire.
Ce dont j'ai besoin est d'appeler la fonction MyController::listAll()
et retourner un Model::find('all')
dans JSON
format donc je peux l'utiliser avec JS.
Ai-je besoin d'une View
pour cela?
Dans ce dossier, qui devrait afficher aller?
Quelle extension devrait-il avoir?
Où dois-je mettre la Router::parseExtension()
et RequestHandlerComponent
?
//Controller
public function listAll() {
$myModel = $this->MyModel->find('all');
if($this->request->is('ajax') {
$this->layout=null;
//What else?
}
}
- Vous n'avez pas besoin d'un gabarit de vue, vous pouvez simplement utiliser JsonView que documentée
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas ce que vous lisez, mais je suppose que ce n'était pas la documentation officielle. La documentation officielle contient des exemples de comment le faire.
Si l'action est appelée avec le .json extension vous obtenez json, si elle est appelée avec .xml vous aurez xml dos.
Si vous voulez ou devez, vous pouvez créer des fichiers de vue. Ses comme bien expliqué sur cette page.
Vous devez utiliser la sortie après l'écho et que vous utilisez déjà la disposition nulle, donc c'est OK.
Vous n'avez pas à utiliser la fonction Afficher pour cela, et c'est votre souhait de travailler avec les composants. Bien tout ce que vous pouvez faire à partir de contrôleur lui-même et il n'y a rien de mal à cela!
Iinjoy
Dans Cakephp 3.5, vous pouvez envoyer la réponse json comme ci-dessous:
//dans le contrôleur
HTML:
Essayez ceci: