Правило array
Правило array применяется к полю формы и проверяет,
что переданное значение является массивом. Это правило полезно
при работе с множественными полями ввода, например, с флажками
или многократным выбором. Оно не требует дополнительных параметров
и может комбинироваться с другими правилами для валидации
элементов массива.
Синтаксис
<?php
$rules = [
'field_name' => 'array',
];
?>
Пример
Давайте создадим запрос на валидацию, который требует,
чтобы поле 'tags' было массивом:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'tags' => 'array',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Validation passed']);
}
}
?>
Пример
Отправим правильные данные с массивом:
<?php
// Отправка POST запроса на /articles
$data = ['tags' => ['laravel', 'php', 'vue']];
?>
Результат выполнения кода:
"Validation passed"
Пример
Отправим неверные данные, где поле 'tags' является строкой:
<?php
// Отправка POST запроса на /articles
$data = ['tags' => 'laravel'];
?>
Результат выполнения кода:
{
"tags": ["The tags field must be an array."]
}
Пример
Правило array часто используется вместе с правилом
min для проверки минимального количества элементов в массиве:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'tags' => 'array|min:1',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Validation passed']);
}
}
?>
Результат выполнения кода при пустом массиве:
{
"tags": ["The tags field must have at least 1 items."]
}
Пример
Также правило array можно комбинировать с правилом
max для ограничения максимального количества элементов:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'selected_ids' => 'array|max:5',
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Validation passed']);
}
}
?>