我的数据库上只有一个名为“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'));
}
答案 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所说的内容。