Правило digits_between
Правило digits_between используется для проверки,
что число содержит заданное количество цифр. Правило
принимает два параметра: минимальное и максимальное
количество цифр. Это правило работает только с
числовыми значениями и требует, чтобы поле было
целым числом.
Синтаксис
<?php
use Illuminate\Validation\Rule;
$rules = [
'field' => 'digits_between:min,max'
];
?>
Пример
Давайте проверим, что поле 'code' содержит от 4 до 6 цифр:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class CodeController extends Controller
{
public function validateCode(Request $request)
{
$validator = Validator::make($request->all(), [
'code' => 'digits_between:4,6'
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
echo $res;
} else {
echo "Code is valid";
}
}
}
?>
Если мы отправим запрос с полем 'code' равным 12345, результат будет:
"Code is valid"
Если мы отправим запрос с полем 'code' равным 123, результат будет:
["The code must be between 4 and 6 digits."]
Пример
Давайте используем правило digits_between
в классе FormRequest для проверки поля 'pin',
которое должно содержать от 4 до 8 цифр:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PinRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'pin' => 'required|digits_between:4,8'
];
}
}
?>
<?php
namespace App\Http\Controllers;
use App\Http\Requests\PinRequest;
class PinController extends Controller
{
public function store(PinRequest $request)
{
$res = "PIN is valid";
echo $res;
}
}
?>
При отправке запроса с полем 'pin'
равным 1234567 результат будет:
"PIN is valid"
При отправке запроса с полем 'pin'
равным 123456789 результат будет:
["The pin must be between 4 and 8 digits."]
Пример
Давайте добавим правило digits_between
с использованием Rule класса для проверки поля
'phone', которое должно содержать
от 10 до 12 цифр:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class PhoneController extends Controller
{
public function validatePhone(Request $request)
{
$validator = Validator::make($request->all(), [
'phone' => [
'required',
Rule::digitsBetween(10, 12)
]
]);
if ($validator->passes()) {
echo "Phone number is valid";
} else {
$res = $validator->errors()->all();
echo $res;
}
}
}
?>
При отправке запроса с полем 'phone'
равным 1234567890 результат будет:
"Phone number is valid"
При отправке запроса с полем 'phone'
равным 123456789 результат будет:
["The phone must be between 10 and 12 digits."]