我有一個這樣的驗證器,
我有一個這樣的驗證器。
$validator = Validator::make($request-> query(),
[
'size' => 'required|numeric|max:' . (100 * 1024 *1024)
],
[
'size.required' => 'param size is required'。
'size.numeric' => 'param size should be numberic',
'size.max' => 'param size is over size'.
]);
現在我想檢查$validator是否有錯誤size.required
$messages = $validator-> errors();
if ($messages-> has('size.required')) {
//做一些事情...。
} else if ($messages->has('size. numeric') {
//做一些事情...。
}
那么有什么方法可以實作它嗎?
謝謝你的建議。
謝謝你的任何想法。
uj5u.com熱心網友回復:
不是一個很好的解決方案,但你可以檢查錯誤資訊是否包含一個關鍵字:
use IlluminateSupportStr;
if( Str::contains($messages->first('size'), 'required')){
//做一些事情...。
}
uj5u.com熱心網友回復:
我想你正在尋找failed方法在Validation類中
$sizeArray = [
'required' => '', //Required Validation Will Fail.
'numeric' => 'string', //數字驗證將失敗。
'max' => (100 * 1024 * 10),//max驗證會失敗。
'success_one' => '1234'。
'success_two' => 1234.
];
$validator = Validator::make(
[
'size' => $sizeArray['numeric'].
],
[
'size' => 'required|numeric|max:' . (100 * 1024 *1024)
],
[
'size.required' => 'param size is required test manoj',
'size.numeric' => 'param size should be numberic',
'size.max' => 'param size is over size'.
);
$validator->errors();//Don't Remove this line。
$failedValidation = collect($validator-> failed())-> map(function ($parameterFailedRules, $parameter) {
return array_change_key_case($parameterFailedRules, CASE_LOWER) 。
});
if (Arr::have($failedValidation, 'size.required') {
dd('required Validation Failed')。
}else if(Arr::has($failedValidation, 'size. numeric')){
dd('numeric Validation Failed')。
} else if (Arr::have($failedValidation, 'size.max') {
dd('max Validation Failed')。
}else{
dd('All Validation Passed');
}
請改變size的輸入值以改變錯誤資訊。
目前,它將顯示.
。"數字驗證失敗"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311816.html
標籤:
