Правило between
Правило between используется в валидации данных
для проверки, что значение поля находится в заданном
диапазоне включительно. Первым параметром передаётся
нижняя граница, вторым - верхняя граница. Правило
применимо к числам, строкам (проверяет длину) и
массивам (проверяет количество элементов).
Синтаксис
<?php
'field' => 'between:min,max'
?>
Пример
Давайте проверим, что возраст пользователя находится в диапазоне от 18 до 65 лет:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'age' => 'required|integer|between:18,65'
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'User validated']);
}
}
?>
Пример
Давайте проверим, что длина строки находится в диапазоне от 3 до 10 символов:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'title' => 'required|string|between:3,10'
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Article validated']);
}
}
?>
Пример
Давайте проверим, что количество элементов в массиве находится в диапазоне от 1 до 5:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class OrderController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'items' => 'required|array|between:1,5'
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Order validated']);
}
}
?>
Пример
Давайте используем правило between в
классе FormRequest:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ProductRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'price' => 'required|numeric|between:10,100',
'name' => 'required|string|between:2,50',
'tags' => 'nullable|array|between:0,10'
];
}
}
?>
Пример
Давайте добавим свои сообщения об ошибках для правила
between:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class SettingsRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'score' => 'required|integer|between:0,100'
];
}
public function messages(): array
{
return [
'score.between' => 'The score must be between 0 and 100'
];
}
}
?>