Bonjour,

(je suis le tuto de cakephp pour faire un site)
j'ai un soucis de redirection dans mes fonctions sur un de mes controllers
Dans mes autres controllers cela marche correctement et le code est casiment identique.

Cela ne me redirige pas apres un edit d'une catégorie mais cela met a jour quand meme la catégorie apres rafraichissement.
(le message flash ne s'affiche pas aussi vu quil ny a pas de redirection)

public function admin_edit($id = null){
        if($this->request->is('post') || $this->request->is('put')){
            $this->Category->save($this->request->data);
            $this->Session->setFlash('la catégorie a bien été sauvegardé','notif');
            $this->redirect(array('action'=>'index'));
        }elseif($id){
            $this->Category->id = $id;
            $this->request->data = $this->Category->read();
        }
    }

Pareil pour ma focntion delete()
cela supprime bien la categorie que je selectionne dans ma base de donnée mais pas de redirection.
je tombe sur une page banche avec comme url l'id effacé

public function admin_delete($id){
        $this->Session->setFlash('la page a bien été supprimée', 'notif');
        // $this->Category->delete($id);
         $this->redirect($this->referer());
    }

Si je ne met aucun parametre dans la methode redirect()
J'ai un message d'erreur comme quoi il y a bien un parametre qui manque, donc la fonction est bien apelé.
J'ai essayé de mettre une url en dur mais pareil pas de redirection.

j'ai essayé de trouver des log d'erreurs mais rien.
D'ou peut venir le prob ?
:(

7 réponses


Jack88
Auteur
Réponse acceptée

Je viens de trouver le probleme.
mon <php? de ma page commencais en deuxieme ligne , en premiere ligne il ny avait rien.
Je ne savais pas que ca avait une incidence sur le redirect.

Bonjour.
Essaies de rajouter return juste avant le $this->redirect, soit par exemple :

return $this->redirect(['action' => 'index']);
Jack88
Auteur

Non toujours une page blanche :(

Quelle version de CakePHP utilises-tu ? Car les tutos de Grafikart sont pour les versions 1.x et 2.x. La version actuelle de CakePHP est la 3, et les préfixes ne fonctionnent plus pareil. Si tu utilises la version 3 avec des tutos pour la version 1.x et 2.x, le problème vient de là.

Jack88
Auteur

CakePHP(tm) v 0.2.9
ver : 2.8.4
Apres sur mes autres controller utilisent des prefix et les redirections fonctionne bien

Si t'as redirection redirige vers une méthode préfixée, essaie de mettre la préfix en paramètre de la redirection

$this->redirect([ 'action' => 'index', 'prefix' => 'admin' ]);
Jack88
Auteur

Non , j'ai toujours cette page blanche :(