10
votes

Rendez une vue vide dans CakePHP

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é xxx

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?


0 commentaires

8 Réponses :


0
votes

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 '


0 commentaires

4
votes

Essayez d'utiliser la mise en page Ajax $ ceci-> layout = 'ajax' Il s'agit de la disposition vide par défaut, utilisée pour les méthodes Ajax.


0 commentaires

6
votes

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;


0 commentaires

13
votes

Utiliser $ ceci-> Layout = 'Ajax' code> ne semble pas suffisant.

mais en utilisant ces deux lignes fonctionne: P>

$this->layout = 'ajax'; 
$this->render(false);


0 commentaires

5
votes

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: xxx


2 commentaires

Essaie toujours de rechercher un fichier de visualisation et montre-moi Erreur: la vue pour examplecontroller :: myaction () n'a pas été trouvée


Vous devez mettre $ ceci-> ViewBuilder () -> autolayout (false); à l'intérieur de l'action (ou à l'intérieur de la méthode d'initialisation du contrôleur).



1
votes

Le CakePHP 3 autolayout (FALSE) 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.

Création d'un fichier .CTP 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 Propriété qui vous permettrait de configurer le contrôleur pour rechercher le dossier app / vue , 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.

  1. Créer src / template / my_blank_view.ctp
  2. Ajoutez les éléments suivants à votre action de contrôleur: XXX

    aussi, j'utilise $ ceci-> ViewBuilder () -> mise en page (false) au lieu de autolayout (faux) 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) vient de définir explicitement qu'il n'y a pas de mise en page nécessaire.


1 commentaires

Il est toujours agréable de googler votre propre réponse au hasard



3
votes
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.

0 commentaires

2
votes

Ajoutez ceci dans votre contrôleur:

$this->autoRender = false;  


0 commentaires