Symfony отправить по тому же URL

У меня есть форма с некоторыми текстовыми полями, и у меня есть кнопка предварительного просмотра, которая должна отправить форму тому же контроллеру. А затем в контроллере мне нужно извлечь значения и заполнить форму этими значениями, чтобы шаблон мог их увидеть. Каков наилучший способ добиться этого? Я новичок, поэтому, пожалуйста, будьте ясны.


person prongs    schedule 09.12.2011    source источник


Ответы (2)


Пример контроллера:

public function myControllerName(sfWebRequest $request)
{
  $this->form = new myFormClass();
}

Используйте <?php echo $form->renderFormTag( url_for('@yourRoutingName'), array('method' => 'POST') ); ?> в своем шаблоне и измените @yourRoutingName на тот, который указывает на ваш контроллер.

Теперь измените свой контроллер, чтобы он выглядел примерно так:

public function myControllerName(sfWebRequest $request)
{
  $this->form = new myFormClass();

  if ($request->isMethod(sfRequest::POST)
  {
    $this->form->bind( $request->getParameter( $this->form->getName() ) );

    // Check if the form is valid.
    if ($this->form->isValid())
    {
      $this->form->save();
      // More logic here.
    }
  }
}

Часть $this->form->bind( $request->getParameter( $this->form->getName() ) ); привязывает опубликованные данные к вашей форме, где $this->form->isValid() возвращает логическое значение, независимо от того, действительна ли форма или нет.

person Marco Bax    schedule 09.12.2011

Вы пробовали это?

$this->redirect($request->getReferer()); //action

если нет, то, пожалуйста, попробуйте и проверьте, работает ли это для вас.

Спасибо.

person Chandresh M    schedule 09.12.2011