当我创建新记录时,在动作processForm
中,我需要获取名为idmensajes
的隐藏字段的值。该字段是隐藏字段,自动增量和prymary键。
但是当我使用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 add:
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 :(得分:1)
首先检查 idmensajes 是否存在,以及是否可以从表单中获取其他字段。
试试这个:
$this->form['idmensajes']->getValue(),
<强> UPD 强>
尝试:
$mensajes = $form->save();
$idmensajes = $mensajes->getIdmenSajec()// or other getter