CakePHP:模型和控制器之间的连接失败

时间:2012-12-10 12:50:23

标签: cakephp model controller connection

我最新的CakePHP应用程序存在问题。

我为类别制作了模型和控制器。

型号:Categorie.php

class Categorie extends AppModel{
    public $name = 'Categorie';
}

Controller:CategoriesController.php

class CategoriesController extends AppController {
    public function index(){
        $this->set('list', $this->Categorie->find('all'));
    }
}

但是当我访问该页面时,我收到错误:

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

当我添加

$this->loadModel('Categorie');

到我的控制器中的索引函数它将起作用。

所以我猜模型和控制器之间的连接不起作用,但我不确定,我不知道如何解决这个问题。

请帮帮我。

日Thnx

3 个答案:

答案 0 :(得分:7)

CakePHP使用控制器名称单数变体来匹配模型,类别的单数是类别,而不是类别

答案 1 :(得分:3)

正如@ndm所说,你应该使用CakePHP约定。 您的表应该被称为categories,那么您的模型应如下所示:

class Category extends AppModel{

}

然后你可以把它包括在内:

$this->loadModel('Category');

在CategoriesController上你可以像这样使用它:

class CategoriesController extends AppController {
    public function index(){
        $this->set('list', $this->Category->find('all'));
    }
}

如果要为表命名,可以在控制器中使用$useTable变量来指定模型将使用的表的名称。

答案 2 :(得分:2)

您还可以使用控制器的$uses属性:

public $uses = array('Categorie');