【问题标题】:Laravel 5.4 - Custom message for a dropdown listLaravel 5.4 - 下拉列表的自定义消息
【发布时间】:2017-08-26 22:22:56
【问题描述】:

我可以为文本字段创建验证自定义消息,但不能为 .

这里是“单位”字段的 HTML:

<input type="text" class="form-control" id="unit" name="unit">

这里是“visitor_id”字段:

<select id="visitor_id" name="visitor_id" class="form-control">
    @foreach($visitors as $visitor)
        <option value="{{$visitor->id}}"> 
            {{ $visitor->name }}
        </option>
    @endforeach
</select>

控制器:

$rules = [
   'unit'=> 'required|min:2|max:2',
   'visitor_id'=> 'required|not_in:14'
]
 $customMessages = [
    'unit.required' => 'Unit cannot be blank and must have 2 char max',
    'visitor_id.required' => 'Please choose from the list...'
    ];
$this->validate($request, $rules, $customMessages);

如果我将单位字段留空或不遵循 max:2 规则,则消息将是应有的内容:'Unit cannot be blank..."

但是,如果我将名为 visitor_id 的下拉列表保留为 14,则错误消息将是默认的“所选访客 ID 无效”。而不是我需要的那个; "请从列表中选择..."

附图显示了结果。

很遗憾,我研究了一个多小时,但找不到解决方案。

【问题讨论】:

    标签: php laravel validation html-select dropdown


    【解决方案1】:

    当然这将是默认消息,因为您只更改了required 而不是not_in,所以为了使其正常工作,请在下面添加以下行:

    $rules = [
       'unit'=> 'required|min:2|max:2',
       'visitor_id'=> 'required|not_in:14'
    ]
    
     $customMessages = [
        'unit.required' => 'Unit cannot be blank and must have 2 char max',
        'visitor_id.required' => 'Please choose from the list...'
        'visitor_id.not_in' => 'Please choose from the list...' 
        ];
    
    $this->validate($request, $rules, $customMessages);
    

    【讨论】:

    • 是的!这就对了!我已经尝试过加入它们(visitor_id.required.not_in),但从未想过将它们分开。谢谢,Leo_Kelmendi
    【解决方案2】:

    我需要在选择字段下方显示错误信息...我的代码如下。

     <div class="col-md-3">
      <select class="custom-select form-control" id="designation_id" value="{{old('designation_id')}}" name="designation_id">
         <option value="" class="disabled">-- Select Designation --</option>
             @foreach ($designations as $designation)
                <option value="{{ $designation->id }}"
                     @if(old('designation_id')== $designation->id) selected="selected" 
                     @endif> {{ $designation->name }} 
                </option>
             @endforeach
      </select>
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-29
      • 2017-10-23
      • 2014-12-21
      • 2017-07-14
      • 1970-01-01
      • 2014-08-13
      • 2014-05-31
      • 2017-06-28
      相关资源
      最近更新 更多