gpt4 book ai didi

url - Symfony2:如何将URL querystring参数传递给 Controller ​​?

转载 作者:行者123 更新时间:2023-12-03 12:22:11 25 4
gpt4 key购买 nike

也许我缺少了一些东西,但是似乎没有一种方法可以在Symfony2的路由中定义querystring参数,以便可以将它们传递到 Controller 中。

例如,不是生成/blog/my-blog-post这样的URI(从Symfony2的routing documentation),而是将其传递到以下路由:

# app/config/routing.yml    
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }

我希望生成一个像 /blog?slug=my-blog-post的URI。问题是我找不到在路由配置文件中定义 slug参数的地方(例如上面的{slug}对应物)。

也许这是有目的的,但是在查询字符串中使用GET参数的最佳实践是什么?

该文档的确在 Generating URLs with Query Strings中提到了它们,那么如何将它们传递给 Controller ​​?

我可以在其中找到提及的地方 Symfony2 and HTTP Fundamentals:
use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

// retrieve GET variables
$request->query->get('foo');

这是在 Controller 内部使用它们的最佳实践吗?

最佳答案

要在扩展Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller的 Controller 中使用GET / POST参数:

public function updateAction()
{
$request = $this->getRequest();
$request->query->get('myParam'); // get a $_GET parameter
$request->request->get('myParam'); // get a $_POST parameter
...
}

对于不扩展Symfony基本 Controller 的 Controller ,请将请求对象声明为action方法的参数,然后按上述步骤进行操作:
public function updateAction(Request $request)
{
$request->query->get('myParam'); // get a $_GET parameter
$request->request->get('myParam'); // get a $_POST parameter
...
}

关于url - Symfony2:如何将URL querystring参数传递给 Controller ​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com