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
если нет, то, пожалуйста, попробуйте и проверьте, работает ли он для вас.
Благодарю.