Bonjour tout le monde,

j'ai un soucis niveau de mon accès à posts/edit !!!
j'ai un message d'erreur

Fatal error: Call to a member function setFlash() on a non-object in posts_controller.php on line 40

voici mon code :

<?php
class PostsController extends AppController{

    var $name = 'Posts';
        var $paginate = array(
            'Post' => array(
                    'limit' => 3,
                    'order' => array(
                            'Post.date' => 'Desc'
                            )
                    ));
        var $helpers = array('Html','Date');
        function beforeFilter(){
            parent::beforeFilter(); //réinitialise le beforeFilter de appControler
            $this->Auth->allow(array('index','categories')); //permet les 2 actions suivantes index et categories
        }
    function index(){
            $q = $this->paginate('Post');
            $this->set('articles', $q);
    }
        function categories($id){
            $q = $this->paginate('Post',array("Post.categorie_id"=>$id));
            $this->set('articles', $q);
            $this->render("index");
    }
        function edit($id=null){
            $c = $this->Post->Categorie->find('list',array(
                'recursive' => -1, //pour n'avoir que les categories
                'fields' => array('id','titre')
            ));
            $this->set('cats',$c);
            $this->layout = 'admin';
            if(isset($this->data)){
                $this->Post->save($this->data);
                $this->Session->setFlash('Article bien édité');
                //$this->redirect('alist');
            }
            if($id!=null){
                $this->Post->id = $id;
                $this->data = $this->Post->read();
            }
    }
        function del($id){
            $this->Post->delete($id);
            $this->Session->setFlash('Article bien supprimé');
            $this->redirect('alist');
    }
        function alist(){
            $this->layout = 'admin';
            $q = $this->paginate('Post');
            $this->set('articles', $q);
    }
}
?>

Merci de votre aide

3 réponses


zenkiai
Réponse acceptée

Il te suffit d'ajouter dans ta fonction login ceci :

$this->redirect(array('controller' => 'posts', 'action' => 'admin_edit'));

J'ai trouvé la réponse en ajoutant dans

$components = array('Session'); de AppController

Maintenant, j'ai un soucis au niveau du login qui ne me redirige pas vers la page posts/edit mais reste sur users/login !!!

Comment puis je regler ce petit soucis ?

oui c'est ca qui me manquait ;-)

merci beaucoup