Laravel 5.4 - 下拉列表的自定义消息
Laravel 5.4 - Custom message for a dropdown list
我可以为文本字段创建验证自定义消息,但不能为 .
这是 "unit" 字段的 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 规则,消息将是它应有的样子:“单位不能为空...”
但是如果我将名为 visitor_id 的下拉列表的值保留为 14,则错误消息将是默认的 "The selected visitor id is invalid." 而不是我需要的; "Please choose from the list..."
附图显示了结果。
不幸的是,我研究了一个多小时,但找不到解决方案。
当然这将是默认消息,因为您只更改了 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);
我需要在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>
我可以为文本字段创建验证自定义消息,但不能为 .
这是 "unit" 字段的 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 规则,消息将是它应有的样子:“单位不能为空...”
但是如果我将名为 visitor_id 的下拉列表的值保留为 14,则错误消息将是默认的 "The selected visitor id is invalid." 而不是我需要的; "Please choose from the list..."
附图显示了结果。
不幸的是,我研究了一个多小时,但找不到解决方案。
当然这将是默认消息,因为您只更改了 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);
我需要在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>