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