我是CodeIgniter中DataMapper ORM的新手,这是我的问题。根据手册:
小心这种方法。没有限制它在哪里 语句或类似的方法,它将修改每一行 表!
此外,此方法绕过验证,也可以对表内外键进行操作,因此请注意风险。
如果更新方法绕过验证,更新在更新前验证它的记录的方法是什么?我们将非常感谢示例代码。
答案 0 :(得分:0)
DataMapper ORM无法验证,因为它只能对您首先获取的数据执行此操作。使用UPDATE
可以让MySQL修改字段,而无需检查最终的PHP验证函数。
解决方案首先抓取所需的所有行,然后使用save()
函数。然后将完成PHP端验证。
http://datamapper.wanwizard.eu/pages/save.html
我在DataMapper ORM上有点生疏,但这里有一个例子可以解释你应该做什么:
$users = new User();
$users->where('age', 25)->get();
foreach($users as $user)
{
$user->age = 26;
$user->save();
}
答案 1 :(得分:0)
update()方法只不过是$ this-> db-> update()的别名。
它只检查是否需要将更新时间戳添加到更新的记录中,并确保传递的字段存在于您要更新的表中。
用于更新对象,请使用save()。它将自动确定是否需要INSERT或UPDATE。
答案 2 :(得分:0)
如果您尝试$ obj-> save();和动态验证规则(取决于一些$ _POST变量)仍然没有验证,
尝试使用$ obj-> force_validation();在$ obj-> save();
之前