Fatal error: Call to a member function find() on a non-object in C:\wamp\www\cakephp1\app\Controller\Posts_controller.php on line 20
function edit(){
$c = $this->Post->Category->find('list',array(
'recursive'=>-1,
'field'=>array('id','titre')));
$this->set('cats',$c);
$this->layout="admin";
}
Alors plusieurs choses, essaie de rester dans du php5 prends bien l'habitude de ne plus définir tes variables de classes avec var mais avec l'un des 3 termes: public, protected ou private, de même pour tes fonctions. Je t'invite à regarder la doc la dessus.
Ensuite concernant ton problème, le souci vient simplement du fait que tes modèles ne sont pas liés entre eux. Tu n'as aucun belongsTo, hasMany etc... Regarde les tutos de Grafikart, il y en a plein qui expliquent tout ça et sinon la doc est très claire sur le sujet.
Donc soit tu lies tes Models entre eux, soit tu appelles simplement $this->Category->find() sans le Post au milieu. Et dans ton cas c'est même mieux si c'est juste un find('list').
je ne comprenais pas ://
voila les code
<u>Post.php</u>
<?php
class Post extends AppModel{
var $name='Post';
}
?>
<u>Category.php</u>
<?php
class Category extends AppModel{
var $name='Category';
}
?>
<u>Post_controller.php</u>
<?php
class Postscontroller extends AppController{
var $name="Posts";
var $paginate = array(
'Post'=>array(
'limit'=>2,
'order'=>array(
'Post.date'=>'Desc')));
function index(){
$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("index");}
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(isset($this->data)){
$this->Post->save($this->data);
$this->Session->setFlash('Article bien edit');
$this->redirect('alist');
}
if($id!=null){
$this->Post->id=$id;
$this->data=$this->Post->read();
}
}
function alist(){
$q=$this->paginate('Post');
$this->set('articles',$q);
}
}
?>
<u> <em><strong>Fatal error: Call to a member function find() on a non-object in C:\wamp\www\cakephp1\app\Controller\Posts_controller.php on line 20</strong></em></u>