Symfony 1.4 Validation - PullRequest
       10

Symfony 1.4 Validation

0 голосов
/ 27 мая 2011

Может кто-нибудь сказать мне, как я могу проверить данные на другой странице (где не был создан объект формы)?

Дело в том, что на странице 'A' я создаю объект формы со своими собственными валидаторами и показываю форму пользователю. Но действие переходит на страницу «B», где мне нужно проверить данные.

Я хочу сделать что-то вроде этого (страница 'B'):

$form = new someForm();
$form->bind($this->getRequest()->getParameter('data'));
if($form->isValid())
{
  print 'true';
}
else
{
  print 'false';
}

Но, как вы можете себе представить, он напечатает «ложь».

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Полагаю, это происходит из-за защиты форм CSRF в Symfony

Попробуйте использовать этот код

$form = new someForm();
$form->disableLocalCSRFProtection();
$form->bind($this->getRequest()->getParameter('data'));
if($form->isValid())
{
  print 'true';
}
else
{
  print 'false';
}
0 голосов
/ 27 мая 2011

может быть, вы могли бы решить это как:

public function executeFoo($request){
  $this->form = new fooForm();
  $this->getUser()->setAttribute('tmpForm', $this->form);
}

в вашей форме действие должно указывать на модуль / бар там вы можете сделать:

public function executeBar($request){
  $this->forward404Unless($form = $this->getUser()->getAttribute('tmpForm'));
  $form->bind($this->getRequest()->getParameter('data'))
  // and so on
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...