在更新DataMapper ORM CodeIgniter时验证数据



我是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();
}
update()方法不过是$this->db->update()的别名。

它只检查是否需要将更新时间戳添加到更新的记录中,并确保传递的字段存在于要更新的表中。

要更新对象,请使用save()。它将自动确定是否需要INSERT或UPDATE。

如果您尝试$obj->save();和动态验证规则(取决于一些$_POST变量),并且仍然没有验证,

尝试使用$obj->force_validation();$obj->save()之前;

最新更新