【问题标题】:Is there a way to easily insert error messages to the output of Fuelphp's validation output?有没有办法轻松地将错误消息插入到 Fuelphp 的验证输出的输出中?
【发布时间】:2012-04-24 05:04:48
【问题描述】:

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

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

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

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

有什么简单的方法吗?

【问题讨论】:

    标签: fuelphp


    【解决方案1】:

    本机 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-&gt;errors['field_name'] = 'Error message';添加错误

    [edit] 如果您想使用第二种解决方案,请务必在他们的 Github 跟踪器中向他们提交功能请求 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      相关资源
      最近更新 更多