2010-04-18 67 views
3

我正在寫一個簡單的登錄表單,一切正常(驗證等),但我不能讓價值觀,還有我的代碼:Symfony的表單值丟失

public function executeIndex(sfWebRequest $request) 
    { 
     $this->getUser()->clearCredentials(); 
     $this->getUser()->setAuthenticated(false); 

     $this->form = new LoginForm(); 

     if ($request->isMethod('post') && $request->hasParameter('login')) { 
      $this->form->bind($request->getParameter('login')); 

      if ($this->form->isValid()) { 

       $this->getUser()->setAuthenticated(true); 
       $this->getUser()->addCredential('user'); 
       $this->login = $this->form->getValue('login'); 
      } 
     } 
    } 

$這個 - >登錄爲NULL 。現在,我檢查了幾乎所有的東西,形式是有效的,一個isBound()是真實的,COUNT()返回3,我可以看到我的要求值:

parameterHolder: 
    action: index 
    login: { login: foo, password: foo, _csrf_token: 53ebddee1883d7e3d6575d6fb1707a15 } 
    module: login 

BUT的GetValues()返回NULL,的getValue('登錄')等也返回NULL。怎麼會這樣?

不,我不想用sfGuard-插件;)

回答

4

關於嘗試這樣

$form['value_name']->getValue() 

的東西是什麼呢還是空?

也有可能您創建了自定義發佈驗證器?

+0

哇,它這樣工作,謝謝!是的,我創建了一個驗證器來檢查登錄和通過數據庫... – Cav 2010-04-18 15:40:13

+0

我在問,因爲它可能有可能是你的驗證器有問題,或者它根本沒有返回任何東西,所以你得到NULL值 – Serge 2010-04-18 16:10:12

+0

該死的,你是對的,我沒有返回$值...再次感謝! – Cav 2010-04-18 16:32:56

0

回調驗證必須回到返回值到主叫方:

return $values;