我正在使用bootstrap验证器创建一个表单。我正在使用bootstrap验证器(客户端)和laravel验证(服务器)执行验证。我的问题是我想对laravel执行ajax请求以检查用户名的可用性。
在laravel中我们有这种类型的验证:
'username' => 'required|min:6|max:15|unique:users',
检查用户名的可用性。现在我想在bootstrap验证器中包含这种类型的检查。
username: {
validators: {
notEmpty: {
message: 'The username is required and cannot be empty'
},
stringLength: {
min: 6,
max: 15,
message: 'The username must be more than 6 and less than 15 characters long'
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: 'The username can only consist of alphabetica, number, dot and underscore'
},
remote: {
url: '' /*** how can I perform laravel validation with this?
message: 'The username is not available'
}
}
},
我该怎么做?我是否需要为此类检查创建自定义帮助程序?或者我可以将laravel的验证与此相结合吗?
答案 0 :(得分:0)
好的,我设法通过在我的控制器中创建另一个功能来解决它。 这是我做的:
remote: {
url: "{{ URL::to('/checkUsername') }}",
data: function(validator) {
return {
username: validator.getFieldElements('username').val()
}
},
message: 'The username is not available'
}
在我的控制器中我有这个:
public function checkUsernameAvailability() {
$user = DB::table('authors')->where('username', Input::get('username'))->count();
if($user > 0) {
$isAvailable = FALSE;
} else {
$isAvailable = TRUE;
}
echo json_encode(
array(
'valid' => $isAvailable
));
}
然后就是这样。 :)