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

Метод validated

Метод validated применяется к объекту FormRequest после успешной валидации и возвращает массив проверенных данных. Он доступен в контроллере после того, как запрос прошёл проверку. Первым параметром метод ничего не принимает, но можно передать ключ для получения конкретного поля. Если поле не найдено, возвращается null.

Синтаксис

<?php $data = $request->validated(); $field = $request->validated('field_name'); ?>

Пример

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

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class ArticleRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'title' => 'required|string|max:255', 'content' => 'required|string', 'status' => 'required|in:draft,published', ]; } } ?>

Теперь используем метод validated в контроллере:

<?php namespace AppHttpControllers; use AppHttpRequestsArticleRequest; use AppModelsArticle; class ArticleController extends Controller { public function store(ArticleRequest $request) { $validated = $request->validated(); $article = Article::create($validated); return response()->json([ 'message' => 'Article created successfully', 'article' => $article, ]); } } ?>

Пример

Получим конкретное поле из проверенных данных:

<?php namespace AppHttpControllers; use AppHttpRequestsArticleRequest; class ArticleController extends Controller { public function store(ArticleRequest $request) { $title = $request->validated('title'); $content = $request->validated('content'); $res = "Title: " . $title . ", Content: " . $content; return response()->json(['data' => $res]); } } ?>

Пример

Проверим, что метод возвращает только проверенные поля, игнорируя лишние:

<?php namespace AppHttpControllers; use AppHttpRequestsArticleRequest; class ArticleController extends Controller { public function store(ArticleRequest $request) { $validated = $request->validated(); $res = $validated; return response()->json($res); } } ?>

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

[ "title" => "My Article", "content" => "Article content here", "status" => "published" ]

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

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

  • метод rules,
    который определяет правила валидации
  • метод authorize,
    который проверяет права пользователя
  • метод validated класса Validator,
    который также возвращает проверенные данные
  • функция validate,
    которая выполняет валидацию и возвращает массив данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить