В Symfony 5 я хотел бы сгенерировать URL-адрес, частично основанный на уже опубликованных параметрах GET.
Предположим, что опубликованный URL-адрес:
user/edit/5?foo=1&bar=1&baz=1&qux=1
Я хотел бы для генерации в контроллере без foo
:
user/edit/5?bar=1&baz=1&qux=1
Сначала я удаляю параметр foo
:
$request->query->remove('foo');
Если я не получил user_id
в URL в качестве параметра маршрута (5) я бы использовал:
$this->generateUrl('user_edit', $request->query->all());
Но это не работает, потому что user_id
отсутствует. Итак, как я могу сгенерировать такой URL без перезаписи всех переменных:
$this->generateUrl('user_edit', ['id' => $user->getId(), ???]);
Я думал о PHP функции array_merge()
, но это кажется мне больше уловкой, чем элегантным решением:
$this->generateUrl('user_edit', array_merge(
['id' => $user->getId()],
$request->query->all())
);