2013-10-24 65 views
0

當我創建新記錄時,在動作processForm中,我需要獲取名爲idmensajes的隱藏字段的值。該字段是隱藏字段,自動增量鍵和prymary鍵。 但是,當我使用getValue ('idmensajes')結果是空的。爲什麼?我如何才能在processForm中獲得idmensajes的價值?Symfony 1.4我無法獲取隱藏字段的值

這裏processForm的代碼:

protected function processForm(sfWebRequest $request, sfForm $form) 
    { 
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); 
    if ($form->isValid()) 
    {  
      $form_vals = $this->form->getValue('idmensajes'); 

     $mensajes = $form->save(); 
     $this->redirect('mensajes/index'); 

爲了觀看捕獲的值,對應於兩個場,我添加:

$form_vals1 = $this->form->getValue('idmensajes'); 
    $form_vals2= $this->form->getValue('cuerpo'); 


$this->getUser()->setFlash("val1", $form_vals1); 
$this->getUser()->setFlash("val2", $form_vals2); 

在視圖中,indexSuccess.php的,我添加代碼:

<?php echo 'El valor del Id es:'. $sf_user->getFlash('val1'); ?> 
<br> 
<?php echo 'El valor de Cuerpo es: '. $sf_user->getFlash('val2'); ?> 

然後,我查看val2的值,但值val1是空的。

這裏的完整代碼,與Flash添加:

protected function processForm(sfWebRequest $request, sfForm $form) 
    { 
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); 
    if ($form->isValid()) 
    {  

     $mensajes = $form->save(); 

     $form_vals1 = $this->form->getValue('idmensajes'); 
     $form_vals2= $this->form->getValue('cuerpo'); 

     $this->getUser()->setFlash("val1", $form_vals1); 
     $this->getUser()->setFlash("val2", $form_vals2); 

     $this->redirect('mensajes/index'); 
+0

您可以發佈代碼,你在哪裏得到的價值? – denys281

+0

@ denys281我添加了我的processForm的完整代碼 –

回答

1

如果idmensajes存在首先檢查,如果你可以從你的形式得到另一場。

試試這個:

$this->form['idmensajes']->getValue(), 

UPD

嘗試:

$mensajes = $form->save(); 
$idmensajes = $mensajes->getIdmenSajec()// or other getter 
+0

相同:idmensajes是空的。但是,在價值觀存在。當Symfony加載模板indexSuccess.php時,我可以看到生成的值。但Symfony和Doctrine在什麼時候創造了一個具有自動增量價值的領域的價值? –

+0

@JorgeH你能從你的表單中獲得其他價值嗎?更新回答 – denys281

+0

是的,我可以看到行動中的其他領域。例如,通過一個名爲Cuerpo的字段文本,我可以獲得該值並查看。 –