Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-07-2016 11:35:51

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 62

Les vues sans layout ne sont pas rendues

Bonjour à tous,

je suis une fois de plus confronter à un problème assez bizarre. Dans une de mes vues, je fais un appel ajax vers une action pour que celle ci me retourne des données complémentaires. Dans mon controller, je fais quelque chose du style :

Code:

[lang=php]
public function monactionAction() {
    $view = new ViewModel();
    $view->setTerminal(true);
    // mon traitement
    return $this->response;
}

Tout fonctionne sans problème en localhost (wamp) mais quand j'appelle cette action sur mon serveur distant, je n'ai aucune données et quand je vais directement sur l'URL appelée, j'ai une page blanche...

Par ailleurs, si je réactive la vue dans l'action ($view->setTerminal(false)), je reçois bien les données sur le serveur mais avec le layout... ce que je ne souhaite pas !

Ca fait plusieurs jours que j'essaye de comprendre d'où vient cette bizarrerie sans résultat.

Une idée ?

Merci d'avance,
Romain

Dernière modification par RomainG (27-07-2016 11:37:56)

Hors ligne

 

#2 27-07-2016 11:59:32

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 62

Re: Les vues sans layout ne sont pas rendues

Finalement, j'ai résolu mon problème un peu par hasard...

J'ai tout simplement activé le 'display_errors' et le 'error_reporting' dans mon fichier index.php et les requêtes en AJAX affichent bien les données.

Je reste quand même septique quant à cette solution loin d'être idéale...

Hors ligne

 

#3 27-07-2016 11:59:54

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 421

Re: Les vues sans layout ne sont pas rendues

Bonjour,

En fait ton problème je pense est que tu traites un objet ViewModel auquel tu désactive le layout principal, mais que tu lui retourne un objet de type Response.

J'aurais été toi, j'aurais retourné un objet JsonModel que j'aurais traité dans mon callback Ajax. Ce que je fais dans toutes mes actions ajax  en fait.

Code:

[lang=php]
 public function monactionAction()
    {
        $request = $this->getRequest();
        if ($request->isXmlHttpRequest()) {
           // traitement
           $html = $this->renderer()->render('somePartial', array('var1' => $var, 'data' => $data))

            return new JsonModel(array("unBlocHtml" => $html));
        } else {
            return $this->notFoundAction();
        }
    }

Voici une action simplifié qui me retourne directement un partial déjà rendu par le renderer, mon callback ajax affiche juste ce partial a la vue etc...


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages