Метод set класса InputBag
Метод set класса InputBag записывает значение
в контейнер, который хранит данные из запроса.
Первым параметром передаётся имя ключа, вторым -
устанавливаемое значение. Метод не возвращает результат,
а изменяет текущий объект InputBag.
Синтаксис
public function set(string $key, mixed $value): void
Пример
Давайте создадим объект InputBag и установим
в него параметр с ключом 'name':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\InputBag;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(): Response
{
$bag = new InputBag();
$bag->set('name', 'abcde');
return new Response($bag->get('name'));
}
}
?>
Результат выполнения кода:
abcde
Пример
Давайте установим несколько параметров и получим их
через метод all:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\InputBag;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(): Response
{
$bag = new InputBag();
$bag->set('title', 'article');
$bag->set('count', 5);
return new Response(json_encode($bag->all()));
}
}
?>
Результат выполнения кода:
{"title":"article","count":5}
Пример
Давайте изменим значение параметра в существующем
объекте InputBag, полученном из запроса:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ArticleController extends AbstractController
{
public function index(Request $request): Response
{
$bag = $request->query;
$bag->set('page', 2);
return new Response($bag->get('page'));
}
}
?>
Результат выполнения кода для адреса /?page=1:
2