Symfony1 Symfony-重定向到填写表单值的操作
如何重定向到另一个操作,并在新操作中填写表单字段 我有一个操作,我想调用redirect(),类似于:Symfony1 Symfony-重定向到填写表单值的操作,symfony1,symfony-1.4,symfony-forms,Symfony1,Symfony 1.4,Symfony Forms,如何重定向到另一个操作,并在新操作中填写表单字段 我有一个操作,我想调用redirect(),类似于: $this->redirect('foo/search?Search[last_name]='.$this->form->getValue('last_name')); 它应该重定向到我的搜索操作,该操作中的表单应该填写last_name参数。该操作的代码如下所示: public function executeSearch(sfWebRequest $request) {
$this->redirect('foo/search?Search[last_name]='.$this->form->getValue('last_name'));
它应该重定向到我的搜索操作,该操作中的表单应该填写last_name参数。该操作的代码如下所示:
public function executeSearch(sfWebRequest $request)
{
$this->form = new SearchForm();
$submission = $request->getParameter($this->form->getName());
...do stuff with $submission...
SearchForm的名称格式为“搜索[%s]”
我尝试过的参数重定向()都不起作用。搜索[]参数总是以某种方式弄乱,无法填充表单。试试看
另一种方法是在用户会话中存储提交数据。我会尝试让Symfony根据路由和参数为您生成URL:
@search = a route for your search action in your routing.yml
$parameters = array of the parameters you want to pass
$url = $this->generateUrl('search', $parameters);
$this->redirect($url);
参数数组应采用以下格式
'Search[something1]' => 'value1'
'Search[something2]' => 'value2'
。。。因此,URL将其视为:
?Search[something1]=value1&Search[something2]=value2
然后你应该能够使用
$this->form->bind($request->getParameter('Search'));
(for binding)
。。。甚至可能
$this->form->setDefaults($request->getParameter('Search'));
(for populating for a template)
希望这能对你有所帮助,或者至少能给你一些想法。是的!非常感谢。我以前没有见过generateUrl()方法。在Symfony中创建带有路由的URL比框架中的任何东西都更适合我。