2012-10-29 54 views
1

我很长一段时间尝试与CakePHP获得一个简单的listmenu关系两张表,但它不起作用。当我能够脚手架列表菜单的工作(是否显示关系是正确的?)但我的代码不是。CakePHP:调用一个非对象的成员函数find()

我的网址(本地主机/论坛/职位/加)显示错误:

Error: Call to a member function find() on a non-object

File: C:\wamp\www\forum\app\Controller\PostsController.php

PostsController.php

class PostsController extends AppController { 

public $name = 'Posts'; 

public function index() { 

    $this->paginate = array('limit'=>3); 
    $posts = $this->paginate('Post'); 
    $this->set(compact('posts')); 
} 
public function getCategorias(){ 
    $categorias = $this->Post->Categotia->find('list', array('fields' => array('id', 'categoria'))); 
    $this->set(compact('categorias')); 
} 

public function add(){ 
    if($this->data){ 
     if($this->Post->save($this->data)) 
      $this->Session->setFlash('Post adicionado com sucesso'); 
    $this->data = array(); 
    } 
    self::getCategorias(); 
} 

public function edit($id = null){ 
    if($this->data){ 
     if($this->Post->save($this->data)) 
       $this->Session->setFlash('Post editado com sucesso'); 
     $this->redirect(array('controller'=>'Posts','action'=>'index'));  
    }else{ 
     $this->data = $this->Post->read(null,$id); 

    } 
    self::getCategorias(); 
} 

public function delete($id = null){ 
    if($id){ 
     if($this->Post->delete($id)) 
      $this->Session->setFlash('Post Excluido com sucesso'); 
     $this->redirect(array('controller'=>'Posts','action'=>'index')) ; 

    } 
} 

public function view($id = null){ 
    if($id){ 
     $this->Post->id = $id; 
     $this->set('post', $this->Post->read()); 
    } 

} 

}

我的模型

帖子.php:

class Post extends AppModel{ 
    public $name = 'Post'; 
    public $belongsTo = array('Categoria'); 
} 

Categoria.php

class Categoria extends AppModel{ 
    public $name = 'Categoria'; 
    public $hasMany = array('Post'); 
} 
+0

什么是你的表名? – Parris

+0

我的表名是“帖子”和“分类” –

回答

1

也许你拼错Categoria这里:

$categorias = $this->Post->Categotia->find('list', array('fields' => array('id', 'categoria')));

1
$this->Post->Categotia->find(); 

是错误的,而不是你可以把

$this->Post->Categoria->find() 
相关问题