2017-08-26 25 views
0

我可以爲文本字段創建驗證自定義消息,但不能爲。Laravel 5.4 - 用於下拉列表的自定義消息

下面是 「單位」 字段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); 

如果我離開單位字段爲空或不遵循最大:2規則,消息將是它應該是:'單位不能爲空...「

但是,如果我將名爲visitor_id的下拉列表的值設爲14,則錯誤消息將是默認的「選定的訪問者ID無效」,而不是我需要的; 「請從列表中選擇...」

附圖顯示結果。

不幸的是,我研究了一個多小時並找不到解決方案。

error messages

回答

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); 
+0

是的!這就對了!我已經試圖加入他們(visitor_id.required.not_in),但從未將它們分開。謝謝,Leo_Kelmendi –