$request->request->replace() что он делает?

Я копался в коде Symfony и нашел

$request->request->replace()

На самом деле, форма публикуется, и ее значение извлекается в функции, скажем,

public function someFunction(Request $request){
    $data = $request->request->all() ? : json_decode($request->getContent(), true);
    $request->request->replace($data);
}

Когда я бросил,

$request->request->replace($data)

Результат нулевой. Я не понял, почему он используется и каковы его преимущества?

Я искал об этом, некоторые говорят, что он используется для очистки данных, некоторые говорят, что мы не должны использовать его, так как он заменяет все параметры в запросе, вместо этого мы должны использовать метод set.

И я ничего не понял, так как я новичок в symfony.

Что $request->request->replace() делает с предоставленным ему параметром?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
924
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш $request является экземпляром Symfony\Component\HttpFoundation\Request . Используя $request, у вас есть доступ к таким свойствам, как запрос, запрос, файлы cookie, атрибуты, файлы, сервер, заголовки. Каждое из этих свойств имеет тип Symfony\Component\HttpFoundation\ParameterBag. Экземпляр ParameterBag предоставляет доступ к параметрам запроса с помощью метода $request->request->all(). Этот метод вернет свойство «параметры» экземпляра ParameterBag.

$request->request->replace($data) установит для свойства «параметры» в экземпляре ParameterBag значение $data.

Кроме того, метод replace() не имеет возвращаемого типа, поэтому, когда вы выгружаете $request->request->replace($data), вы получаете нуль в качестве вывода.

Если вы хотите добавить некоторые дополнительные параметры в свой запрос, то replace() не является правильным выбором, вам следует использовать метод set() в ParameterBag.

Как насчет очистки данных?

Saurabh 27.05.2019 08:18

@Saurabh, по моему мнению, дезинфекция - неправильный термин. Предположим, вы хотите передать параметры запроса какой-либо другой службе после некоторой модификации, тогда вы извлечете существующие параметры, используя метод все(), и соответствующим образом измените их. После этого замените существующие параметры на измененные с помощью метода заменять().

Nishant Middha 27.05.2019 08:51

Другие вопросы по теме