Bonjour,

J'ai un problème, lorsque j'essaie depuis une vue .ctp avec un lien généré d'appeler une fonction qui elle, n'affiche pas de vue.
En effet, en essayant d'ajouter :
$this->autoRender = false ; CakePHP 3 essaie de me trouver une page dont l'URL est le Href de mon lien, ce qui me renvoie sur la page d'erreur 404, logique, vu que l'URL en question n'existe pas.

Avez-vous déjà expérimenté ce type de problèmes ?

Meilleures salutations,

DR

[EDIT]:
Pour info, mon code fonctionne en local sous WAMP. les modules en prod sont bien activés (OVH), depuis, j'ai d'autres méthodes utilisant $this->autoRender = false ; , et ces dernières fonctionnent....

4 réponses


Tu peux essayer $this->layout = false;
mais je ne garantie rien ... !

Ou solution que j'utilise dans mon api

$this->render('mon-template-vide','mon-layout-vide');

Perso j'utilise un layout qui resemble a ça

<?php 
// Empty.ctp
echo $this->fetch('content');
?>

Par example et un template

<?php
// Json/render.ctp
$serialize = [];
foreach ($_serialize as $var) {
    $serialize[$var] = $this->get($var);
}
echo json_encode($serialize);
?>

Qui me règle mes problèmes de vue quand je rend du json et a la fin de mes methodes dans le controller je mets

$this->render('/Json/render','empty');

Je suis sous cakePhp 3 et ca fonctionne a merveille et si mes souvenir sont bon sous le 2 c'était pareil

Bonsoir.

J'ai un problème, lorsque j'essaie depuis une vue .ctp avec un lien généré d'appeler une fonction qui elle, n'affiche pas de vue.

Si tu ne veux pas afficher de vue lors de l'appel à la fonction, je suppose que tu fais une manipulation pour récupérer des données en json par exemple.
Non ?
@Niramar : Qu'est-ce que c'est que se pavé ? Tu ne connais pas les différentes vues qui existent sur CakePHP ? Comme par exemple les vues json ?

Si si je déclare toujours $this->loadComponent('RequestHandler'); dans la méthode initialize() de mon app controller histoire de ne sortir que du json mais hors api j'utilise ce système car comme je ne veux pas utilisé le requestHandler ni déclaré les extensions dans le router ca m'évite les messages d'erreurs du render