РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
654 of 1392 menu

Метод validated

Метод validated применяется к экземпляру класса Validator и возвращает массив проверенных данных. Этот метод обычно вызывается после успешной валидации, когда метод passes вернул true или метод fails вернул false. Возвращаемый массив содержит только те поля, которые присутствуют в правилах валидации, отфильтрованные от лишних данных.

Синтаксис

<?php $validator->validated(); ?>

Пример

Давайте создадим валидатор для данных пользователя и получим только проверенные поля:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'name' => 'John', 'email' => 'john@example.com', 'age' => '25', 'role' => 'admin' ]; $rules = [ 'name' => 'required|string|max:255', 'email' => 'required|email', 'age' => 'nullable|integer|min:18' ]; $validator = Validator::make($data, $rules); if ($validator->passes()) { $validatedData = $validator->validated(); print_r($validatedData); } ?>

Результат выполнения кода:

[ 'name' => 'John', 'email' => 'john@example.com', 'age' => '25' ]

Обратите внимание, что поле role отсутствует в результате, так как оно не было указано в правилах валидации, даже несмотря на то, что присутствовало в исходных данных.

Пример

Метод validated также доступен в классах FormRequest. Рассмотрим использование в контроллере:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class UserRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|string|min:8|confirmed' ]; } } ?>
<?php namespace App\Http\Controllers; use App\Http\Requests\UserRequest; class UserController extends Controller { public function store(UserRequest $request) { $validated = $request->validated(); // Здесь метод validated работает аналогично echo "User created with data:\n"; print_r($validated); // Создание пользователя с проверенными данными // User::create($validated); } } ?>

Результат выполнения кода при корректных данных:

"User created with data: ['name' => 'John', 'email' => 'john@example.com', 'password' => 'secret123']"

Пример

Важно отметить, что метод validated возвращает только те поля, которые прошли валидацию. Поля с ошибками не включаются в результат:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'name' => 'John Doe', 'email' => 'invalid-email', 'phone' => '123456789', 'address' => 'Main St' ]; $rules = [ 'name' => 'required|string', 'email' => 'required|email', 'phone' => 'nullable|numeric', 'address' => 'nullable|string' ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { $validatedData = $validator->validated(); echo "Validated data:\n"; print_r($validatedData); echo "\nErrors:\n"; print_r($validator->errors()->all()); } ?>

Результат выполнения кода:

"Validated data: ['name' => 'John Doe', 'phone' => '123456789', 'address' => 'Main St'] Errors: ['The email field must be a valid email address.']"

Как видно из примера, поле email не попадает в результат, так как его валидация не прошла, в то время как остальные корректные поля включаются в массив проверенных данных.

Смотрите также

  • метод validated класса FormRequest,
    который работает аналогично в классах запросов
  • метод passes,
    который проверяет прошла ли валидация
  • метод fails,
    который проверяет провалилась ли валидация
  • метод errors,
    который возвращает все ошибки валидации
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить