Laravel 4 custom[方法]不存在


Laravel 4 custom [method] does not exist

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

我有这个方法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]])     );
        }
}

我已经把这个类放在libraries文件夹中。对于框架自动拾取该类,它可能会被拾取,因为我可以在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);
    }
}

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

您需要注册您的自定义Validator扩展:

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

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