Правило integer
Правило integer используется в валидации данных Laravel
для проверки того, что значение поля является целым числом.
Это правило проверяет, что значение может быть представлено
как целое число, включая отрицательные значения.
Правило работает как со значениями из запроса, так и с
массивами данных. При несовпадении типа возвращается ошибка.
Синтаксис
<?php
$request->validate([
'field_name' => 'integer'
]);
?>
Пример
Проверим, что возраст пользователя является целым числом:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllers\Controller;
class UserController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'age' => 'integer'
]);
return response()->json([
'message' => 'Validation passed'
]);
}
}
?>
Если передать значение '25' (строку), валидация пройдёт успешно,
так как Laravel приводит строковое представление числа к целому типу.
Результат выполнения кода при успешной валидации:
{"message":"Validation passed"}
Пример
Проверим, что количество товара является целым числом. Если передать дробное значение, валидация не пройдёт:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllers\Controller;
class ProductController extends Controller
{
public function update(Request $request, $id)
{
$validated = $request->validate([
'quantity' => 'integer'
]);
return response()->json([
'quantity' => $validated['quantity']
]);
}
}
?>
При передаче значения '10.5' результатом будет ошибка валидации:
{
"message":"The quantity must be an integer.",
"errors":{
"quantity":[
"The quantity must be an integer."
]
}
}
Пример
Используем правило integer вместе с другими правилами
для более точной валидации. Проверим, что рейтинг является
целым числом от 1 до 5:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllers\Controller;
class RatingController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'rating' => 'integer|min:1|max:5'
]);
return response()->json([
'rating' => $validated['rating']
]);
}
}
?>
При передаче значения 3 валидация пройдёт успешно.
Результат выполнения кода:
{"rating":3}
Если передать значение 6, результатом будет ошибка:
{
"message":"The rating must not be greater than 5.",
"errors":{
"rating":[
"The rating must not be greater than 5."
]
}
}