我最新的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
答案 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');