當前我在laravel輸入驗證中遇到了一些問題,其中驗證規則之間似乎不適用正確。以下是我的HTML代碼。Laravel輸入驗證之間沒有正確驗證
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="margin-bottom-10">
<label>Thread Title :</label>
<input name="thread_title" maxlength="100" required>
</div>
<div class="margin-bottom-10">
<label>Price :</label>
<input type="number" step="0.01" min="0" required title="Please enter price with x.xx format." name="thread_item_price" />
</div>
我想要做的是驗證給定的價格必須介於0和9999.99之間。我檢查元素,並刪除最小=「0」,並嘗試提交-1000的負值,系統似乎接受輸入。下面是我的驗證規則
$validator = Validator::make($request::all(),
[
'thread_title' => 'required|max:100',
'thread_item_price' => 'between:0,9999.99'
],
[
'thread_title.required' => 'Please fill in thread title.',
'thread_title.max' => 'Thread title has exceeded 100 characters.',
'thread_item_price.required' => 'Price cannot be empty.',
'thread_item_price.between' => 'Price must be equals to 0 or 9999.99.',
]);
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
};
我是否做錯了什麼,使驗證失敗?
它仍然digits_between –
接受沒有必要運行正則表達式。 'digits_between'檢查數字的位數,而不是輸入的數字值。 「之間」的作品,但你需要讓Laravel知道它是一個數值,如我的答案中所示。 –