【问题标题】:Select element not displaying Laravel vaildation errors选择不显示 Laravel 验证错误的元素
【发布时间】:2018-03-11 18:20:22
【问题描述】:

在我有一个带有选项的选择元素之前我从来没有遇到过这个问题,在我的控制器中我将它设置为必需,并且由于某种原因验证错误没有显示有错误类甚至没有被添加到表单组

html 和刀片

<div class="form-group {{ $errors->has('Test') ? 'has-error' : ''}}">
       <label for="Return_Type">Return Type <span class="request-alert"></span></label>
         <select name="Test" id="Return_Type" class="form-control">
              <option>Choose One...</option>
                  @foreach($categories as $category)
                     <option value="{{ $category->id }}">{{ $category->name }}</option>
                  @endforeach
          </select>
          @if($errors->has('Test'))
             <span class="help-block">
                  {{ $errors->first('Test') }}
             </span>
           @endif
</div>

控制器

 $this->validate($request, [
            'First_Name'    => 'required',
            'Last_Name'     => 'required',
            'Email'         => 'required',
            'Phone'         => 'required',
            'Fax'                        ,
            'Company'                    ,
            'Marketplace'   => 'required',
            'Order_Number'  => 'required',
            'Address_1'     => 'required',
            'Address_2'                  ,
            'City'          => 'required',
            'State'         => 'required',
            'Zip_Code'      => 'required',
            'Test'          => 'required',
            'Product_Name'  => 'required',
            'Quantity'      => 'required',
            'SKU'           => 'required',
        ]);

【问题讨论】:

  • 您是否收到其他字段的错误?
  • @MazinoSUkah 对不起,我周末不在,除了 2 个选择元素之外的所有其他作品

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

您需要在第一个选择选项中添加 ==> value="",即

<option value="">Choose One...</option>

所以将您的选择表单部分更改为

<div class="form-group {{ $errors->has('Test') ? 'has-error' : ''}}">
   <label for="Return_Type">Return Type <span class="request-alert"></span></label>
     <select name="Test" id="Return_Type" class="form-control">
          <option value="">Choose One...</option>
              @foreach($categories as $category)
                 <option value="{{ $category->id }}">{{ $category->name }}</option>
              @endforeach
      </select>
      @if($errors->has('Test'))
         <span class="help-block">
              {{ $errors->first('Test') }}
         </span>
       @endif

希望对你有帮助:)

【讨论】:

    【解决方案2】:

    首先从validate中删除属性fax、company和address2,并添加 在属性测试'Test' =&gt; 'required|exists:Test,id'

    【讨论】:

    • 感谢您的回答,但我已经尝试过了,但没有成功):我把那些留空,因为我将来可能需要它
    • 在属性Test中添加'Test' =&gt; 'required|exists:Test,id'
    • 它给了我一个数据库问题,它正在寻找一个名为 Test 的表
    • 删除id只写'Test' =&gt; 'required|exists:Test'
    • 它仍在寻找一个名为 Test 的表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多