Je dois empêcher la vision d'être rendue dans un cas spécifié, mais je ne comprends pas comment l'empêcher de rendre.
J'ai essayé p> mais rien ne s'est passé, probablement parce que j'utilise un moteur API qui gèrent différemment des contrôleurs ordinaires. Tout le monde connaît tout tour pour faire cela? P> P>
8 Réponses :
Sans rien savoir sur le moteur API que vous utilisez, essayez peut-être de créer une mise en page vide avec du contenu vide et de l'appeler dans le contrôleur sous le nom $ ceci-> vide_layout ' code> p> p> p> P>
Essayez d'utiliser la mise en page Ajax $ ceci-> layout = 'ajax' code> Il s'agit de la disposition vide par défaut, utilisée pour les méthodes Ajax. P>
Lors de la recherche d'une solution, j'ai trouvé cette réponse. Maintenant, lorsque vous utilisez CakePHP 2.4.x, vous pouvez utiliser le code suivant dans votre contrôleur:
$this->layout = false;
Utiliser mais en utilisant ces deux lignes fonctionne: P> $ ceci-> Layout = 'Ajax' code> ne semble pas suffisant.
$this->layout = 'ajax';
$this->render(false);
C'est une vieille question. La version Cake-Version actuelle est 3.x et il existe un moyen facile d'utiliser une mise en page vierge.
Ajoutez uniquement le dans le contrôleur: p>
Essaie toujours de rechercher un fichier de visualisation et montre-moi Erreur: la vue pour examplecontroller :: myaction () n'a pas été trouvée code>
Vous devez mettre $ ceci-> ViewBuilder () -> autolayout (false); code> à l'intérieur de l'action (ou à l'intérieur de la méthode d'initialisation du contrôleur).
Le CakePHP 3 Création d'un fichier Ajoutez les éléments suivants à votre action de contrôleur: p>
aussi, j'utilise autolayout (FALSE) CODE> La méthode de l'autre réponse aura toujours le système d'essayer de localiser un fichier de visualisation / modèle correspondant pour l'action que vous appelez. Puisque j'avais besoin de sans rendement, cela ne fonctionnait pas pour moi, alors je devais aussi rendre un modèle vide.
.CTP code> pour chaque action vide que vous pourriez avoir besoin n'est pas une option, car vous voudriez normalement en avoir une et réutiliser. CakePHP 2 avait un
$ ceci-> ViewPath Code> Propriété qui vous permettrait de configurer le contrôleur pour rechercher le dossier
app / vue code>, mais c'est CakePHP 3 Alternative se penche toujours dans la correspondance. Contrôleur et dossiers de préfixes. Il existe une manière non si évidente de forcer CakePhP3 à rechercher un modèle dans une voie de vue racine. P>
src / template / my_blank_view.ctp code> li>
$ ceci-> ViewBuilder () -> mise en page (false) code> au lieu de
autolayout (faux) code> parce que le dernier type d'impliquer qu'il pourrait y avoir une autre mise en page ensemble plus tard, où la mise en page
(FALSE) code> vient de définir explicitement qu'il n'y a pas de mise en page nécessaire. P> P>
Il est toujours agréable de googler votre propre réponse au hasard
public function function_without_layout(){ $this->viewBuilder()->autoLayout(false); echo "hello Brij"; exit; } $this->layout = false; is deprecated in CakePHP version 3. Use $this->viewBuilder()->autoLayout(false); for CakePHP version 3.
Ajoutez ceci dans votre contrôleur:
$this->autoRender = false;