Doctrine 1.2:保存POST记录:整数模型字段的验证错误

时间:2011-04-17 06:59:15

标签: php doctrine

我正在以这种方式创建我的学说记录:

$user = new User();
$user->fromArray($_POST);
$user->save();

这会引发异常:

Uncaught exception 'Doctrine_Validator_Exception' with message 'Validation failed in class User 1 field had validation error: * 1 validator failed on dni (type)

当然,“dni”字段的类型为:integer,HTTP POST将所有值都设置为字符串。这就是验证失败的原因。传递验证的唯一方法是:

$_POST['dni'] = (int) $_POST['dni'];

但它“感觉”错了。 作为一个注释,我正在使用集成到CodeIgniter中的Doctrine。在与Symfony合作时,这种情况从未发生过。

非常感谢。

1 个答案:

答案 0 :(得分:2)

这是陈旧但没有答案,所以这里是:

$manager->setAttribute(Doctrine_Core::ATTR_VALIDATE, VALIDATE_ALL & ~VALIDATE_TYPES);

您可以指示Doctrine验证所有或不组合:类型(您的问题),长度,约束,全部和无。

您可以在global level上执行此操作。

也可能在连接级别上。

每张桌子确实如此,但我无法在doctrine orm documentation上找到它。

并且你不必担心数据库中插入了错误的数据类型,数据库不会让你和那个在教义之外的人。