有没有办法轻松地将错误消息插入Fuelphp的验证输出的输出?

时间:2012-04-24 05:04:49

标签: fuelphp

在控制器中,我正在验证注册表单字段的输入。我正在进行简单的验证,例如必填字段,电子邮件验证等。

当我成功提交时,我继续尝试创建用户(我正在使用Sentry包)。我希望能够捕获此过程中的错误,然后将它们附加到验证错误并将它们附加到特定字段。例如:如果电子邮件已存在,我想在“电子邮件字段”中插入错误并为其提供自定义错误消息。

我希望有一些简单的方法可以做到这一点,例如(伪代码):

  

$ validation-> error() - > insert_error($ field_name,$ message)

这样做的简单方法是什么?

1 个答案:

答案 0 :(得分:0)

本机Validation类不允许这样做。

但我可以看到2个解决方案。

第一个解决方案(没有测试,这只是为了得到这个想法):

<?php
class CustomFieldError {
    function rule_which_always_fail($val) {
        return false;
    }
}
function insert_error($validation, $field_name, $error) {
    $validation->field($field_name)->->add_rule(array('CustomFieldError', 'rule_which_always_fail'))->set_message($error);
}

// You need to do that before $validation->run();
if ($duplicate_email) {
    insert_error($validation, 'email', 'Duplicate email');
}

第二种解决方案: 使用您自己的Replace and extends \ Fuel \ Core \ Validation类。 这样,您可以直接在Validation类中添加insert_error()方法,并使用$this->errors['field_name'] = 'Error message';

添加错误

[edit]如果你想使用第二个解决方案,还要确保在他们的Github跟踪器中提交功能请求:)