0

当我创建一条新记录时,在操作中processForm我需要获取一个名为idmensajes. 该字段是一个隐藏字段,自动增量和初级键。但是当我使用getValue ('idmensajes')结果是空的。为什么?如何在 processForm 中获取 idmensajes 的值?

这里的代码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');
4

1 回答 1

1

首先检查idmensajes是否存在,以及是否可以从表单中获取另一个字段。

尝试这个:

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

更新

尝试:

 $mensajes = $form->save();
 $idmensajes = $mensajes->getIdmenSajec()// or other getter 
于 2013-10-24T12:47:37.597 回答