2011-05-28 88 views
0

我有一個帶有2個輸入字段的電子郵件和密碼(隱藏)的表單。我正在嘗試生成如下的隨機值,但未能在提交後綁定密碼(隱藏)值。Symfony在提交後設置隱藏值

$password = substr(md5(rand(100000, 999999)), 0, 6); 

$this->form->bind($request->setParameter('password',$password)); 

形式先後與setNameformat:

$this->widgetSchema->setNameFormat('user[%s]');

+0

嗯,你可以嘗試設置的默認值函數:$ this-> setDefault( '密碼', $密碼); 對不起,我無法提供解決您所描述的問題......我只完成填充隱藏窗體使用默認值。 – 2011-05-28 04:48:13

回答

1

如果一個原則(或推動)的形式,我會通過在傳遞給窗體構造函數之前設置對象上的值,並從窗體中完全刪除窗口小部件來做到這一點。

例如:

$o = new DoctrineOrPropelObject; 
$o->setPassword($myrandomstring); 
$f = new DoctrineOrPropelObjectForm($o); 

然後顯示/形式保存像往常一樣 - 密碼值將權通過表單處理時保存被傳遞到數據庫。

1

如果使用這樣的:

$this->widgetSchema->setNameFormat('user[%s]'); 

然後你的表單輸入字段可以在單個變量中檢索:

$request->getParameter('user'); 

,並要指定需要價值的東西,如設置:

$request->setParameter('user[password]', $password); 

參考可以發現here

問候。

1

你可以重寫窗體的保存方法,並添加$this->values[$field] = $value;

事情是這樣的:

public function save($con = null) 
{ 
     $this->values['owner_id'] = $this->values['owners_ids'][2];` 
     return parent::save($con); 
}