Метод remove класса InputBag
Метод remove класса InputBag удаляет
элемент из контейнера входных данных по его ключу.
Первым параметром передаётся имя ключа, который
нужно удалить. Метод не возвращает удалённое
значение, а изменяет сам контейнер.
Синтаксис
public function remove(string $key): void
Пример
Давайте удалим параметр user из контейнера
входных данных и проверим результат:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\InputBag;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$bag = new InputBag(['user' => 'abcde', 'page' => 1]);
$bag->remove('user');
return new Response(json_encode($bag->all()));
}
}
?>
Результат выполнения кода:
{"page":1}
Пример
Давайте удалим параметр page, значение
которого было строкой:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\InputBag;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$bag = new InputBag(['user' => 'abcde', 'page' => '1']);
$bag->remove('page');
return new Response(json_encode($bag->all()));
}
}
?>
Результат выполнения кода:
{"user":"abcde"}
Пример
Давайте удалим несуществующий параметр. Метод не вызовет ошибку, контейнер останется без изменений:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\InputBag;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$bag = new InputBag(['user' => 'abcde']);
$bag->remove('missing');
return new Response(json_encode($bag->all()));
}
}
?>
Результат выполнения кода:
{"user":"abcde"}
Пример
Давайте удалим параметр из запроса, полученного
контроллером. Для этого извлечём контейнер
через $request->request:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$request->request->remove('user');
return new Response(json_encode($request->request->all()));
}
}
?>
Результат выполнения кода для тела запроса
user=abcde&page=1:
{"page":"1"}