Laravel 来自下拉列表的国家 select 未保存
Laravel country select from droplist not saving
我在验证 laravel
中的国家/地区时遇到问题
1.View
<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.in 控制器
'country' =>
'required|max:200',
'country.required' => __('Select your country from the list '),
$user = new \App\User();
$user = $user->fill([
'first_name'=>$request->input('first_name'),
'last_name'=>$request->input('last_name'),
'email'=>$request->input('email'),
'country'=>$request->input('country'),
]);
3.in 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(),
。
我在验证 laravel
中的国家/地区时遇到问题1.View
<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.in 控制器
'country' =>
'required|max:200',
'country.required' => __('Select your country from the list '),
$user = new \App\User();
$user = $user->fill([
'first_name'=>$request->input('first_name'),
'last_name'=>$request->input('last_name'),
'email'=>$request->input('email'),
'country'=>$request->input('country'),
]);
3.in 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(),
。