Метод set класса ParameterBag
Метод set класса ParameterBag добавляет новый параметр в контейнер или изменяет значение уже существующего. Первым параметром передаётся имя ключа, вторым - его значение. Метод возвращает void и изменяет исходный объект ParameterBag. Обычно используется для модификации параметров запроса перед передачей их в контроллер.
Синтаксис
public function set(string $key, mixed $value): void
Пример
Давайте создадим объект ParameterBag, добавим в него параметр и выведем его значение:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class BagController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag();
$bag->set('name', 'abcde');
return new Response($bag->get('name'));
}
}
?>
Результат выполнения кода:
"abcde"
Пример
Давайте передадим массив параметров при создании объекта, а затем перезапишем одно из значений через метод set:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class BagController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag([
'name' => 'user',
'age' => 25,
'active' => true
]);
$bag->set('age', 30);
return new Response($bag->get('age'));
}
}
?>
Результат выполнения кода:
"30"
Пример
Давайте добавим несколько параметров и выведем их через метод all:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class BagController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag();
$bag->set('name', 'article');
$bag->set('price', 100);
$bag->set('published', false);
$res = $bag->all();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"name": "article", "price": 100, "published": false}
Смотрите также
-
класс
ParameterBag,
который хранит параметры запроса -
метод
get,
который возвращает значение параметра по ключу -
метод
all,
который возвращает все параметры в виде массива -
метод
remove,
который удаляет параметр по ключу