Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
476 of 1361 menu
◀ ▶

Класс InputBag

Класс InputBag представляет собой контейнер для хранения входных данных запроса, чаще всего параметров строки запроса (query) или тела запроса (request). Он доступен через объект Request и позволяет безопасно извлекать значения нужного типа. Внутри себя InputBag хранит массив параметров и предоставляет методы get, all, has, set, remove, а также типизированные методы getInt, getBoolean, getString и filter.

Синтаксис

use Symfony\Component\HttpFoundation\InputBag; $bag = new InputBag(['name' => 'abcde']); $bag->get('name');

Пример

Давайте создадим объект InputBag и получим из него значение по ключу:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class BagController extends AbstractController { #[Route('/bag', name: 'bag_index')] public function index(): Response { $bag = new InputBag(['name' => 'abcde']); $res = $bag->get('name'); return new Response($res); } } ?>

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

"abcde"

Пример

Давайте получим все параметры сразу с помощью метода all:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class BagController extends AbstractController { #[Route('/bag-all', name: 'bag_all')] public function all(): Response { $bag = new InputBag([ 'a' => 'abcde', 'b' => 'article', 'c' => 'user', ]); $res = $bag->all(); return new Response(implode(', ', $res)); } } ?>

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

"abcde, article, user"

Пример

Давайте проверим наличие параметра методом has и приведём значение к целому числу методом getInt:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class BagController extends AbstractController { #[Route('/bag-int', name: 'bag_int')] public function int(): Response { $bag = new InputBag(['page' => '5']); if ($bag->has('page')) { $res = $bag->getInt('page'); } else { $res = 0; } return new Response((string) $res); } } ?>

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

"5"

Пример

Давайте установим новое значение методом set и удалим параметр методом remove:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class BagController extends AbstractController { #[Route('/bag-set', name: 'bag_set')] public function set(): Response { $bag = new InputBag(['name' => 'abcde']); $bag->set('name', 'hello'); $bag->remove('name'); $res = $bag->has('name') ? 'yes' : 'no'; return new Response($res); } } ?>

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

"no"

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

  • метод get,
    который возвращает значение параметра
  • метод all,
    который возвращает все параметры
  • метод has,
    который проверяет наличие параметра
  • класс ParameterBag,
    который хранит произвольные данные
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить