cakephp在数据源默认值中找不到模型表

时间:2012-11-22 10:52:00

标签: php mysql cakephp

我的数据库上只有一个名为“ficha_seg”的表。 我的模型文件的名称是“Ficha.php”,控制器的名称是“FichasController.php”。

那么,为什么我收到错误:

Error: Table fichas for model Ficha was not found in datasource default.

配置我的控制器的index()方法之后:

 public function index() {
    $this->set('ficha_seg', $this->Ficha->find('all'));
}

2 个答案:

答案 0 :(得分:22)

默认情况下,模型使用模型类名称的小写复数形式作为数据库表名。

如果您需要为模型使用其他表名,可以使用useTable属性:

class Ficha extends AppModel 
{
    public $useTable = 'ficha_seg';
}

参见http://book.cakephp.org/2.0/en/models/model-attributes.html#usetable 和食谱中的Model conventions

答案 1 :(得分:5)

要遵循CakePHP惯例,您的表名应为复数:ficha_segs,您的模型名称应为'FichaSeg'。

如果您因任何原因不想关注它,请执行@nlcO所说的内容。