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

Метод whenFilled

Метод whenFilled применяется к объекту запроса Request и позволяет выполнить переданное замыкание, если значение поля присутствует в запросе и не является пустым. Первым параметром передаётся имя поля, вторым - замыкание, которое получит значение поля в качестве аргумента. Третьим параметром передаётся замыкание, которое будет выполнено, если поле отсутствует или пустое.

Синтаксис

<?php $request->whenFilled($key, callable $callback, callable $default = null); ?>

Пример

Давайте проверим, заполнено ли поле 'name' в запросе, и выполним действия в зависимости от этого:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { public function update(Request $request) { $request->whenFilled('name', function ($value) { echo "Field 'name' is filled with: " . $value; }, function () { echo "Field 'name' is not filled"; }); } } ?>

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

"Field 'name' is filled with: John"

Пример

Давайте проверим несколько полей запроса на заполненность и применим к ним фильтрацию:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppModelsArticle; class ArticleController extends Controller { public function index(Request $request) { $query = Article::query(); $request->whenFilled('status', function ($value) use ($query) { $query->where('status', $value); }); $request->whenFilled('category', function ($value) use ($query) { $query->where('category', $value); }); $res = $query->get(); foreach ($res as $article) { echo $article->title . "\n"; } } } ?>

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

"article 1" "article 3"

Пример

Давайте используем метод whenFilled для обработки данных в контроллере и возврата соответствующего ответа:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppModelsUser; class ApiController extends Controller { public function search(Request $request) { $res = []; $request->whenFilled('email', function ($value) use (&$res) { $res['email'] = User::where('email', $value)->first(); }); $request->whenFilled('age', function ($value) use (&$res) { $res['age'] = User::where('age', $value)->get(); }, function () use (&$res) { $res['age'] = "Age parameter not provided"; }); echo json_encode($res); } } ?>

Результат выполнения кода при наличии поля 'email' и отсутствии 'age':

{"email":{"id":1,"name":"John","email":"john@example.com"},"age":"Age parameter not provided"}

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

  • метод has,
    который проверяет наличие поля в запросе
  • метод filled,
    который проверяет наличие и непустоту поля
  • метод input,
    который возвращает значение поля или значение по умолчанию
  • метод only,
    который возвращает только указанные поля из запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить