我是DataMapper CodeIgniter的新手,这是我的问题。根据手册:
对这种方法要小心。在不使用where语句或类似方法限制它的情况下,它将修改表中的每一行!
此外,此方法绕过验证,也可以对表中外键进行操作,因此请注意风险。
如果update方法绕过了验证,那么在更新之前更新记录验证它的方法是什么?示例代码将不胜感激。
发布于 2012-03-22 20:25:06
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();
}发布于 2012-03-26 16:14:41
update()方法只不过是$this->db->update()的别名。
它只检查是否需要将更新时间戳添加到更新的记录中,并确保要更新的表中存在传递的字段。
对于更新对象,请使用save()。它将自动确定是否需要插入或更新。
发布于 2013-07-26 10:39:30
如果您尝试$obj->save();和动态验证规则(依赖于某个$_POST变量),但仍然没有验证,
尝试使用$obj->();在$obj->save()之前使用;
https://stackoverflow.com/questions/9828366
复制相似问题