Я копался в коде 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() делает с предоставленным ему параметром?




Ваш $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, по моему мнению, дезинфекция - неправильный термин. Предположим, вы хотите передать параметры запроса какой-либо другой службе после некоторой модификации, тогда вы извлечете существующие параметры, используя метод все(), и соответствующим образом измените их. После этого замените существующие параметры на измененные с помощью метода заменять().
Как насчет очистки данных?