Правило gt
Правило gt проверяет, что значение переданного поля больше указанного параметра. Это правило полезно при валидации чисел, где требуется минимальное значение, или при сравнении полей формы. Первым параметром передаётся значение, с которым необходимо сравнить поле. Если поле должно быть больше другого поля, используется синтаксис с двоеточием и именем поля.
Синтаксис
<?php
use Illuminate\Validation\Rule;
$rules = [
'field' => 'gt:value',
'field2' => 'gt:other_field',
];
?>
Пример
Валидация запроса, где возраст пользователя должен быть больше 18:
<?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|gt:18',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'User created successfully']);
}
}
?>
Пример
Сравнение двух полей формы, где поле 'end_date' должно быть больше 'start_date':
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class EventController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'start_date' => 'required|date',
'end_date' => 'required|date|gt:start_date',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Event created successfully']);
}
}
?>
Пример
Использование правила gt в классе FormRequest:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateProductRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'price' => 'required|numeric|gt:0',
'sale_price' => 'nullable|numeric|gt:price',
'rating' => 'integer|gt:0',
];
}
}
?>