我在laravel验证国家时遇到了一个问题
1。查看
<div class="form-group">
<label >{{__("Country")}} <span class="required">*</span> </label>
<select name="country" class="form-control">
<option value="">{{__('-- Select --')}}</option>
@foreach(get_country_lists() as $id=>$name)
<option @if((old('country',$dataUser->country ?? '')) == $id)selected @endif value="{{$id}}">{{$name}}</option>
@endforeach
</select>
<span class="invalid-feedback error error-country"></span>
</div>
2。在控制器
'country' =>
'required|max:200',
'country.required' => __('Select your country from the list '),
$user = new AppUser();
$user = $user->fill([
'first_name'=>$request->input('first_name'),
'last_name'=>$request->input('last_name'),
'email'=>$request->input('email'),
'country'=>$request->input('country'),
]);
3。在register.js
var url = form.attr('action');
$.ajax({
'url': url,
'data': {
'email': form.find('input[name=email]').val(),
'first_name': form.find('input[name=first_name]').val(),
'last_name': form.find('input[name=last_name]').val(),
'country':form.find('input[name=country]').val(),
},
'type': 'POST',
通过选择国家,获得验证错误,并且国家未保存
感谢您将国家保存为id,您使用max:200
验证国家的错误如果国家id大于200,它将抛出验证异常。我认为你必须删除max:200
规则。
您的country
表单字段是select
元素,但您正试图捕获input[name=country]
的值。
您需要在您的register.js
文件中将其更改为'country':form.find('select[name=country]').val(),
。