$ request-> request-> replace () что он делает? - PullRequest
0 голосов
/ 27 мая 2019

Я просматривал какой-то код в Symfony и нашел

$ request-> request-> заменить ()

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

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

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

$ request-> request-> заменить ($ данные)

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

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

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

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

1 Ответ

1 голос
/ 27 мая 2019

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

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

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

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

...