Bonjour a tous voila mon probleme, d'ai que je commence le tutoriel ( auth pour un blog) et que je met:

function beforeFilter(){ $this->Auth->allow('*');}

, mais ma page ne s'affiche pas correctement un peu comme sertain site sur internet explorer, et en plus on m'autorise l'accès au site et dans au site et à la place de category on me mais "Fatal error: Call to a member function allow() on a non-object in C:\UwAmp\www\cakephp-\app\Controller\categories_controller.php on line 6" que dans la la premiere page du blog dans les autre page tous s'affiche correctement.
Voila j'esspere que vous aurez compris mon probleme et merci d'avance;D.
ps:

<?php
class CategoriesController extends Controller{
 var $name = "Categories";
  function beforeFilter(){
    $this->Auth->allow('*');

  }
 function clist(){
 return $this->Category->find('all',array(
  'recursive' => -1
          ));  

        }
  }
?>

et

<?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 actu(){
        $q = $this->paginate('Post');
       $this->set('articles' , $q);
      }
            function category($id){
        $q = $this->paginate('Post',array("Post.category_id"=>$id));
       $this->set('articles',$q);
        $this->render("actu");  
    }
        function edit($id=null){
         $c = $this->Post->Category->find('list',array('recursive'=> -1,
        'fields' => array('id','titre')
        ));
         $this->set('cats',$c);
         $this->layout='admin';
         if($this->data){
           $this->Post->save($this->data);
           $this->Session->setFlash('L\'article a bien été édite');
           $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('L\'article est bien supprimé');
         $this->redirect('alist');
       }
       function alist(){
      $this->layout='admin';
        $q = $this->paginate('Post');
       $this->set('articles',$q);
      }   
    }
?>

j'uttilise cakephp 2.0

4 réponses


Créer un appController

class AppController extends Controller {
    public $helpers = array('Html','Text','Form','Session','Cache');
    public $components = array('Session','Auth');
    /**
    * Adminstration
    **/
    function beforeFilter(){
            $this->Auth->allow();
    }
}

et dans CategoriesController

<?php
class CategoriesController extends Controller{

public function clist()
    {
        return $this->Category->find('all',array(
                  'recursive' => -1
          )); 
    }
  }
?>
rayman
Auteur

sa ne change rien a mon probleme et quand je met beforeFilter sa me met :' Call to a member function allow() on a non-object in C:\UwAmp\www\cakephp-\app\Controller\categories_controller.php on line 5' peut etre que le probleme vient de la?

Dans ton categoriesController, dans ton beforeFilter n'oublie pas d'appeller le beforeFilter parent avec parent::beforeFilter()

rayman
Auteur

j'ai deja essayer mais au pire est il possible d'utilliser juste le plug-in?