我刚刚使用CodeIgniter设置DataMapper并根据需要编写模型。
但是我似乎错过了一些东西,因为当我运行查询时,DataMapper无法看到表名覆盖并且认为根本没有表。
有趣的是,如果我删除覆盖,它可以正常工作(虽然有错误说自动生成的表格不存在)。
型号代码:
class Activity extends Datamapper {
var $table = 'activity_log';
var $has_one = [
'user'
];
}
控制器代码:
$activity = new Activity(1);
错误:
Error Number: 1064
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right
syntax to use near 'WHERE `.`id` = 1' at line 2
SELECT * WHERE `.`id` = 1
正如我上面提到的,如果我删除var $ tables ='activity_log';然后它会推迟回到表格'活动'。
答案 0 :(得分:0)
规则
DataMapper模型必须命名为对象的单数形式 名称,大写第一个字母。所以对于一个用户对象, DataMapper模型将命名为User。该模型应该有一个 数据库中的相应表命名为小写,复数形式 对象名称的版本。因此,对于名为User的DataMapper模型, table将被命名为users。对于名为Country的DataMapper模型, 表将被命名为国家。
在大多数情况下,单数和复数版本之间的差异 对象名称只是在末尾添加字母s的问题。
您的模型应命名为Activity_log
。