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

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

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() возвращает логическое значение, является ли форма действительной или нет.

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

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

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

Благодарю.

Другие вопросы по тегам