当我创建新记录时,在操作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');
首先检查 idmensajes 是否存在,以及是否可以从表单中获取另一个字段。
试试这个:
$this->form['idmensajes']->getValue(),
上发
尝试:
$mensajes = $form->save();
$idmensajes = $mensajes->getIdmenSajec()// or other getter