1

私は長い間、CakePHP を使用して 2 つのテーブルの単純なリストメニュー関係を取得しようとしていますが、うまくいきません。足場ができると、リストメニューが機能します(関係が正しいことを示していますか?)しかし、私のコードではそうではありません。

私の URL (localhost/forum/posts/add) にエラーが表示されます:

エラー: オブジェクト以外でのメンバー関数 find() の呼び出し

ファイル: 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());
    }

}

}

私のモデルは

Post.php :

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

カテゴリー.php

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

2 に答える 2

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

間違っている代わりに置くことができます

$this->Post->Categoria->find()
于 2012-10-30T04:19:47.327 に答える
1

多分あなたはここでCategoriaのつづりを間違えた:

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

于 2012-10-30T00:48:12.537 に答える