2011-05-27 109 views
0

任何人都可以告訴我如何驗證其他頁面上的數據(哪裏沒有創建表單對象)?Symfony 1.4驗證

事情是:在頁面'A'我創建帶有自己驗證器的表單對象並向用戶顯示錶單。但是,該操作轉到頁面'B',我需要驗證數據。

我想要做這樣的事情(頁「B」):

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

但是,你可以想像,它會打印「假」。

回答

1

我猜它發生是由於Symfony的

的形式CSRF保護

嘗試使用此代碼

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

也許你可以解決這個問題,如:

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 
}