[英]Generate URL in Symfony 5 with GET parameters
在 Symfony 5 中,我想部分基於已發布的 GET 參數生成 URL。
假設發布的 URL 是:
user/edit/5?foo=1&bar=1&baz=1&qux=1
我想在沒有foo
的 controller 中生成:
user/edit/5?bar=1&baz=1&qux=1
首先,我刪除foo
參數:
$request->query->remove('foo');
如果我沒有將 URL 中的user_id
作為路由參數 (5),我會使用:
$this->generateUrl('user_edit', $request->query->all());
但這不起作用,因為缺少user_id
。 那么如何在不重寫所有變量的情況下生成這樣的 URL :
$this->generateUrl('user_edit', ['id' => $user->getId(), ???]);
我在考慮 PHP function array_merge()
但這在我看來更像是一個技巧而不是一個優雅的解決方案:
$this->generateUrl('user_edit', array_merge(
['id' => $user->getId()],
$request->query->all())
);
使用array_merge()
沒有任何問題。 這正是你想要完成的。 這不是“技巧”,而是語言功能。
如果你想要一個不那么冗長的語法,只需使用+
。
$this->generateUrl('user_edit', $request->query->all() + ['id' => $user->getId()]);
最終結果與上述完全相同,並且更短。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.