php - 是否有一个 Symfony 助手来获取当前操作 URL 并更改一个或多个查询参数?

标签 php symfony1

我想做的是获取当前操作的路由以及所有路由和查询字符串参数,并将单个查询字符串参数更改为其他参数。如果在当前请求中设置了参数,我希望将其替换。如果没有,我想添加它。是否有类似这样的助手,还是我需要自己编写?

谢谢!

[edit:] 伙计,我不清楚我到底想做什么。我想为“此页面”生成 URL,但更改其中一个变量。想象一下我所在的页面是一个搜索结果页面,上面写着“没有结果,但请尝试其中一个”,然后是一堆链接。这些链接将包含所有搜索参数,但我会针对每个链接更改的参数除外。

最佳答案

编辑:

好的,我现在对你想要什么有了更好的了解。我不知道这是否是最好的方法,但你可以试试这个(在 View 中):

url_for('foo', 
        array_merge($sf_request->getParameterHolder()->getAll(), 
                    array('bar' => 'barz'))
)

如果您经常使用它,我建议创建您自己的帮助器,其工作方式类似于 url_for 的包装器。

或者,如果您只需要请求参数的一个子集,请执行以下操作:

url_for('foo', 
         array_merge($sf_request->extractParameters(array('parameter1', 'parameter3')),
                     array('bar' => 'barz'))
)

(我以这种方式格式化代码以提高可读性)


原答案:

我不知道您想在哪里更改参数(在 Controller 中?),但是如果您可以访问当前的 sfRequest对象,应该这样做:

$request->setParameter('key', 'value')

您可以通过以下方式定义您的操作来获取请求对象:

public function executeIndex($request) {
     // ...
}

或者这个

public function executeIndex() {
     $request = $this->getRequest();
}

关于php - 是否有一个 Symfony 助手来获取当前操作 URL 并更改一个或多个查询参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002648/

相关文章:

php - 有没有办法通过节点名称获取简单的 XML 子元素?

php - 存储在表中,Laravel

java - 如何检查m3u8直播是否还活着?

php - 上传图像(JPEG)时有没有办法检查 DPI?

database - Doctrine/Symfony 丢失 M :N relationships on save

php - 丢失 sfGuard 管理员密码 - 需要重置

php - PHP OOP 中的属性与属性数组

php - 如何使用 PHP 的 SoapClient 类使用有状态 Web 服务?

php - 在没有 shell 访问的情况下部署 symfony

php - 使用 Symfony\Component\DependencyInjection 配置 Silex 应用程序的路径