我是CodeIgniter中DataMapper ORM的新手,这是我的问题。根据手册:
使用这种方法要小心。在没有限制的情况下语句或类似方法,它将修改桌子
此外,此方法绕过验证,也可以对表中的外键进行操作,因此请注意风险。
如果更新方法绕过了验证,那么在更新之前更新验证记录的方法是什么?请提供示例代码。
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();
}
它只检查是否需要将更新时间戳添加到更新的记录中,并确保传递的字段存在于要更新的表中。
要更新对象,请使用save()。它将自动确定是否需要INSERT或UPDATE。
如果您尝试$obj->save();和动态验证规则(取决于一些$_POST变量),并且仍然没有验证,
尝试使用$obj->force_validation();$obj->save()之前;