我正在尝试在一个名为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);
});
我建议阅读文档,因为它涵盖了添加您自己的自定义验证规则的几个方法。