我正在使用引导验证器创建一个表单。我正在使用引导验证器(客户端)和 laravel 验证(服务器)执行验证。我的问题是我想对 laravel 执行 ajax 请求以检查用户名的可用性。
在 laravel 中,我们有这种类型的验证:
'username' => 'required|min:6|max:15|unique:users',
检查用户名的可用性。现在我想在引导验证器中包含这种类型的检查。
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'
}
}
},
我该怎么做?是否需要为此类型的检查创建自定义帮助程序?或者我可以将拉拉维尔的验证与此集成吗?
好的,
我设法通过在控制器中创建另一个函数来解决它。这是我所做的:
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
));
}
然后就是这样,:)