Bonjour voila ce que j'aimerait faire , j'ai un composant qui ce charge dans mon controller celui-ci

    public function beforeRender(Controller $Controller)    
    {
    if($this->_protocoles=='ajax')
    {
    json_encode($this->_set['data']);       
    exit(); 
    }
    /////////////////////////:: protocole [http]
    $Controller->render('error/ma_page');   
}

Seulement le render me renvoit un belle pages blanches
un this->render() fonctionne a partir de mon controller

même si mon objectif , n'est pas celui-ci vu que j'ai obligatoirement besoin de gérez mon render depuis le composants !

Est ce possibles ?

Merci , bonne journée a vous

5 réponses


netdown
Auteur
Réponse acceptée

C'est bon j'ai trouvez la réponse , en faite c'était la partit shutdown dont il fallait ce servir
public function shutdown(Controller $Controller)
{
$Controller->render('Error/index_noResult');
}

Salut,
Si tu veux renvoyer vers une erreur le mieux (et le plus sécurisé) est d'envoyé une exeption.
Pour simuler le fait que la page n'existe pas:

    throw new NotFoundException('Page Introuvable');

Tu peux aussi envoyer ForbiddenException ou autre

Si c'est pas que tu veux faire, il faut peut-être essayer d'ajouter un slash /:

    $Controller->render('/error/ma_page'); 
netdown
Auteur

Non ce n'est pas ca ....

Salut, regarde l'api plutot sur beforeRender() enfaite il permet de faire des traitement sur les données, je te conseille plutot d'utiliser http://api.cakephp.org/2.6/class-Component.html#_beforeRedirect
qui lui va te rediriger si tu lui retourne un tableau avec la clé en l'url (je suis pas sur)

return array('url' => '/error/ma-page');

Sa doit te rediriger vers la page demander, si tu veux pas que sa te redirige tu renvoie null

netdown
Auteur

Je désir avoir un affichages d'un rendu pas une redirection ....