Laravel国家选择从droplist不保存



我在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(),

最新更新