РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить