在 Symfony 5 中,我想部分地基于已經(jīng)發(fā)布的 GET 參數(shù)生成一個 URL。假設(shè)發(fā)布的 URL 是:user/edit/5?foo=1&bar=1&baz=1&qux=1我想在控制器中生成沒有foo:user/edit/5?bar=1&baz=1&qux=1首先,我刪除foo參數(shù):$request->query->remove('foo');如果我沒有將user_idURL 中的 作為路由參數(shù) (5),我將使用:$this->generateUrl('user_edit', $request->query->all());但這不起作用,因為user_id缺少。那么如何在不重寫所有變量的情況下生成這樣的 URL:$this->generateUrl('user_edit', ['id' => $user->getId(), ???]);我在考慮 PHP 函數(shù)array_merge(),但在我看來這更像是一個技巧而不是一個優(yōu)雅的解決方案:$this->generateUrl('user_edit', array_merge( ['id' => $user->getId()], $request->query->all()));
1 回答
慕哥6287543
TA貢獻1831條經(jīng)驗 獲得超10個贊
使用array_merge(). 這正是你想要完成的。這不是“技巧”,而是一種語言功能。
如果您想要更簡潔的語法,只需使用+.
$this->generateUrl('user_edit', $request->query->all() + ['id' => $user->getId()]);最終結(jié)果與上面的完全相同,而且更短。
- 1 回答
- 0 關(guān)注
- 97 瀏覽
添加回答
舉報
0/150
提交
取消
