Laravel 5.4 - 下拉列表的自定义消息

时间:2017-08-26 22:22:56

标签: php laravel validation html-select dropdown

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

这是"单位"的HTML。字段:

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

这里是&#34; visitor_id&#34;字段:

<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规则,则该消息将是它应该是:&#39;单位不能为空...&#34;

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

附图显示结果。

我研究了一个多小时,不幸的是找不到解决方案。

error messages

2 个答案:

答案 0 :(得分:1)

当然它将是默认消息,因为您只更改了SELECT COALESCE(TableA.Id,TableB.Id)'Id' , TableA.ContractNo '32' , TableA.zone 'zone-2012' , TableA.inspect 'inspect-2012' , TableB.ContractNo 'xx' , TableB.zone 'zone-2009' , TableB.inspect 'inspect-2009' INTO NewTable FROM TableC a FULL JOIN TableC b ON TableA.Id = TableB.I 而不是required,所以为了使其正常工作,请在下面添加以下行:

not_in

答案 1 :(得分:0)

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

 <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>