gpt4 book ai didi

routes - 如何在 Symfony 中传递 URL 中的普通参数?

转载 作者:行者123 更新时间:2023-12-02 16:09:04 24 4
gpt4 key购买 nike

我正在尝试通过普通查询字符串传递参数,如下所示:

/user/login?foo=bar&abc=123

不幸的是,sfRoute实例中的任何数据似乎都不包含参数fooabc的数据。我该如何解决这个问题?

编辑:这是我根据汤姆的请求使用的代码:

/apps/api/config/routing.yml:

login:
url: /user/login
param: { module: user, action: login }

/apps/api/modules/user/actions/actions.class.php:

class userActions extends sfActions {
public function executeLogin(sfWebRequest $request) {
echo '<pre>'.print_r($this->getRoute(), true).'</pre>';
}
}

就是这样。输出显示,当我通过 URL 在查询字符串中传递 $this->getRoute() 时,$this->getRoute() 不包含有关 fooabc 的信息“/user/login?foo=bar&abc=123”。

最佳答案

访问变量时,使用$request对象,而不是sfRoute:

$request->getParameter('foo')

请确保接收这些请求参数的操作中的函数将其声明为传入变量:

public function executeSomeAction($request)  {  }

如果您正在 Symfony 中寻找 $_SERVER['QUERY_STRING'] 的等效项,我还没有找到它,我自己也会感兴趣。

更新:

我认为您使用的方法只会打印路线。我认为要实现此目标,您需要做的是通过 $request 对象访问它们,正如我之前提到的。例如:

$params_typed = $request->getParameterHolder();  // ... and grab them from here

...或使用服务器查询字符串或单独处理传入的参数。

抱歉,我无法提供更多帮助。

第二次更新:

实际上,只是测试了一个小想法:

如果你像这样在routing.yml中定义参数:

login:
url: /user/login
param: { module: user, action: login, foo: something, abc: something }

您可以通过以下方式访问它们:

$full_path = sfContext::getInstance()->getRouting()->getCurrentInternalUri();

关于routes - 如何在 Symfony 中传递 URL 中的普通参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707783/

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