验证更新DataMapper ORM CodeIgniter上的数据

时间:2012-03-22 18:32:27

标签: php validation codeigniter codeigniter-datamapper

我是CodeIgniter中DataMapper ORM的新手,这是我的问题。根据手册:

  

小心这种方法。没有限制它在哪里   语句或类似的方法,它将修改每一行   表!

     

此外,此方法绕过验证,也可以对表内外键进行操作,因此请注意风险。

如果更新方法绕过验证,更新在更新前验证它的记录的方法是什么?我们将非常感谢示例代码。

3 个答案:

答案 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();

之前