У меня есть форма с некоторыми текстовыми полями, и у меня есть кнопка предварительного просмотра, которая должна отправить форму тому же контроллеру. А затем в контроллере мне нужно извлечь значения и заполнить форму этими значениями, чтобы шаблон мог их увидеть. Каков наилучший способ добиться этого? Я новичок, поэтому, пожалуйста, будьте ясны.
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()
возвращает логическое значение, независимо от того, действительна ли форма или нет.
person
Marco Bax
schedule
09.12.2011
Вы пробовали это?
$this->redirect($request->getReferer()); //action
если нет, то, пожалуйста, попробуйте и проверьте, работает ли это для вас.
Спасибо.
person
Chandresh M
schedule
09.12.2011