Правило max
Правило max используется в валидации форм Laravel для проверки того, что значение поля не превышает указанный максимум. Поведение правила зависит от типа проверяемых данных: для числовых полей проверяется максимальное значение, для строк - максимальное количество символов, для массивов - максимальное количество элементов, а для файлов - максимальный размер в килобайтах. Первым и единственным параметром передаётся значение максимального ограничения.
Синтаксис
<?php
$rules = [
'field' => 'max:value',
];
?>
Пример проверки числа
Проверим, что возраст пользователя не превышает 99 лет:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class UserController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'age' => 'required|integer|max:99',
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
} else {
$res = "Validation passed";
}
echo json_encode($res);
}
}
?>
Результат выполнения кода при передаче значения 100:
["The age field must not be greater than 99."]
Пример проверки строки
Проверим, что название статьи не превышает 50 символов:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'title' => 'required|string|max:50',
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
} else {
$res = "Validation passed";
}
echo json_encode($res);
}
}
?>
Результат выполнения кода при передаче строки длиной 51 символ:
["The title field must not be greater than 50 characters."]
Пример проверки массива
Проверим, что массив тегов содержит не более 5 элементов:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class PostController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'tags' => 'required|array|max:5',
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
} else {
$res = "Validation passed";
}
echo json_encode($res);
}
}
?>
Результат выполнения кода при передаче массива из 6 элементов:
["The tags field must not have more than 5 items."]
Пример использования в Form Request
Применим правило в классе запроса для проверки возраста:
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class UserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'age' => 'required|integer|max:99',
];
}
}
?>
Результат выполнения кода при передаче значения 150:
["The age field must not be greater than 99."]