【问题标题】:Laravel 4 custom validation - [method] does not existLaravel 4 自定义验证 - [方法] 不存在
【发布时间】:2014-10-02 22:58:37
【问题描述】:

我正在尝试在扩展 Illuminate\Validation\Validator 的名为 WBValidation 的类中实现和使用我自己的几个自定义验证方法

我有这个方法validateCombinedRequired:

 class WBValidation extends Illuminate\Validation\Validator{


     public function validateCombinedRequired($attribute,$value,$parameters){
            return (    $this->validateRequired($attribute,$value)  )
            and    (    $this->validateRequired($parameters[0],$this->data[$parameters[0]])     );
        }
}

我已将此类放在库文件夹中。对于自动获取此类的框架,它可能会被获取,因为我可以在 autoload_classmap.php 中看到它(我可能错了)。

当我尝试在我的模型中使用它时,我收到了这个错误,上面写着BadMethodCallException","message":"Method [validateCombinedRequired] does not exist:

class UserModel extends Eloquent{
    protected $table='user';
    public static function VerifyUserAdd($data){


        $rules = array('password'=>'required|combined_required:repassword');

        // stuff

        return Validator::make($data,$rules,$errormessages);
    }
}

还有什么我应该做的吗?请帮帮我!

【问题讨论】:

    标签: php validation laravel laravel-4


    【解决方案1】:

    您需要注册您的自定义验证器扩展:

    Validator::resolver(function($translator, $data, $rules, $messages)
    {
        return new WBValidation($translator, $data, $rules, $messages);
    });
    

    我建议阅读documentation,因为它涵盖了添加您自己的自定义验证规则的几个方面。

    【讨论】:

    • 您可以在start/global.php 中进行操作。
    • 太棒了,成功了。顺便问一下,除了validator:extend({});,还有更简洁的方法来进行自定义验证吗?
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2016-11-22
    • 2014-03-30
    • 2014-02-18
    • 2018-02-18
    • 2015-09-13
    • 1970-01-01
    • 2014-12-16
    相关资源
    最近更新 更多