[英]Validate data on update DataMapper ORM CodeIgniter
我是CodeIgniter中DataMapper ORM的新手,这是我的问题。 根据手册:
请谨慎使用此方法。 不受限于where语句或类似方法,它将修改表上的每一行!
此外,此方法会绕过验证,并且还可以对表内外键进行操作,因此请注意风险。
如果更新方法绕过验证,那么在更新之前更新记录进行验证的方法是什么? 示例代码将不胜感激。
如果尝试$ obj-> save(); 和动态验证规则(取决于某些$ _POST变量),但仍然没有验证,
尝试使用$ obj-> force_validation(); 在$ obj-> save();之前;
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();
}
update()方法不过是$ this-> db-> update()的别名。
它仅检查是否需要将更新时间戳记添加到已更新的记录,并确保传递的字段存在于您要更新的表中。
要更新对象,请使用save()。 它将自动确定是否需要INSERT或UPDATE。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.