簡體   English   中英

用GET參數在Symfony 5中生成URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM