Правило min
Правило min используется для валидации данных формы.
Оно проверяет, что значение поля больше или равно указанному минимуму.
Для числовых полей проверяется числовое значение, для строк - длина строки,
для файлов - размер в килобайтах. Правило работает с целыми числами,
дробными числами, строками и загружаемыми файлами.
Синтаксис
<?php
$rules = [
'field' => 'min:value',
];
?>
Пример
Проверим, что возраст пользователя не меньше 18 лет:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class UserController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'age' => 'required|min:18',
]);
return response()->json(['message' => 'User created']);
}
}
?>
При отправке формы с возрастом 16 лет валидация не пройдёт.
Результат выполнения кода при ошибке:
{"message":"The age field must be at least 18."}
Пример
Проверим, что длина строки с именем пользователя не меньше 3 символов:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class UserController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|min:3|string',
]);
return response()->json(['message' => 'User created']);
}
}
?>
Если имя содержит только 2 символа, валидация не пройдёт.
Результат выполнения кода при ошибке:
{"message":"The name field must be at least 3 characters."}
Пример
Проверим, что загружаемый файл имеет размер не меньше 100 килобайт:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class FileController extends Controller
{
public function upload(Request $request)
{
$validated = $request->validate([
'photo' => 'required|min:100|file',
]);
return response()->json(['message' => 'File uploaded']);
}
}
?>
Если файл весит меньше 100 КБ, валидация не пройдёт.
Результат выполнения кода при ошибке:
{"message":"The photo field must be at least 100 kilobytes."}
Пример
Использование правила в классе FormRequest:
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class ProductRequest extends FormRequest
{
public function rules()
{
return [
'price' => 'required|numeric|min:10',
'name' => 'required|string|min:5',
];
}
public function messages()
{
return [
'price.min' => 'The price must be at least 10 dollars.',
'name.min' => 'The name must be at least 5 characters long.',
];
}
}
?>
Результат выполнения кода при ошибке:
{"price":["The price must be at least 10 dollars."],"name":["The name must be at least 5 characters long."]}