symfony:带有一个参数的表单

Elo*_*fin 1 forms parameter-passing symfony-1.4

我有一个表单,我想传递一个必须用来填充小部件的参数.

我在我的网址中传递参数:

url_for('myModule/new?parameter='.$myParam)
Run Code Online (Sandbox Code Playgroud)

我试图在我的操作中获取参数并将其显示在我的模板中,但它不起作用.

行动:

$this->param = $request->getParameter('parameter');
Run Code Online (Sandbox Code Playgroud)

模板:

echo param;
Run Code Online (Sandbox Code Playgroud)

但我不能以我的形式恢复它.

我怎样才能做到这一点 ?

lun*_*dov 5

如果需要初始化表单,那么你可以做这样的这个参数(记住,你应该总是验证用户输入)

  public function executeNew($request)
  {
    $formOptions = array('parameter' => $request->getParameter('parameter'));
    $this->form = new MyForm(array(), $formOptions);
    // Then within your form you access it with:
    // $parameter = $this->options['parameter'];
    // or even better:
    // $parameter = $this->getOption('parameter');
    ... more code ...
  }
Run Code Online (Sandbox Code Playgroud)

如果参数是作为表单的一部分提交的,那么你应该像这样绑定它:

  public function executeNew($request)
  {
    $this->form = new MyForm();
    if ( $request->isMethod('post') ) {
      $this->form->bind($request->getPostParameters());
    }
    ... more code ...
  }
Run Code Online (Sandbox Code Playgroud)

请参阅的Symfony的行动形式更多关于如何创建和使用形式.

编辑:添加$this->getOption('parameter')到代码示例中.