Laravel 4自定义验证 - [方法]不存在

时间:2014-08-09 16:49:06

标签: php validation laravel laravel-4

我正在尝试在名为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);
    }
}

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

1 个答案:

答案 0 :(得分:2)

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

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

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