Symfony1 如何在Symfony中获取textarea的值

Symfony1 如何在Symfony中获取textarea的值,symfony1,Symfony1,我似乎无法获取文本区域的输入文本。当我这样做时: die($request->getPostParameter('comment')) 它输出单词“array”。当Iprint\u r()时,它确实显示textarea是一个数组,其值存储在数组中。但我不知道如何获取该值,以便将其放入表中的字段中 @GregFire:我这样做是因为我试图将数据保存到两个不同的表中。我的html页面显示一个表单,它实际上由来自两个不同类/模型的两个表单组成。我已成功地将所有字段保存到两个表中,注释字段除外

我似乎无法获取文本区域的输入文本。当我这样做时:

die($request->getPostParameter('comment')) 
它输出单词“array”。当I
print\u r()
时,它确实显示textarea是一个数组,其值存储在数组中。但我不知道如何获取该值,以便将其放入表中的字段中

@GregFire:我这样做是因为我试图将数据保存到两个不同的表中。我的html页面显示一个表单,它实际上由来自两个不同类/模型的两个表单组成。我已成功地将所有字段保存到两个表中,注释字段除外。然后,我尝试获取该值,并意识到它是一个数组,不知道这是否是导致我的数据无法保存的原因。这就是我问这个问题的原因。我问了另一个问题,解释了背景

这些是单击submit按钮时运行的函数

   public function executeUpdateInlineForm(sfWebRequest $request)
{

  $overdueInvestigation = Doctrine_Core::getTable('investigation')->find( $request->getParameter('id'));

    $investigationForm = new investigationInlineForm($overdueInvestigation);
    $commentForm=new commentForm();


    $investigationForm->bind($request->getParameter($investigationForm->getName()), $request->getFiles($investigationForm->getName()));
    $commentForm->bind($request->getParameter($commentForm->getName()), $request->getFiles($commentForm->getName()));

    $this->processInlineForm($investigationForm, $commentForm);

  }

protected function processInlineForm(sfForm $investigationForm, sfForm $commentForm)
{

   if ($investigationForm->isValid())
      {
         $investigation = $investigationForm->save();  

         $comment = $commentForm->updateObject();
         $comment->setInvestigation_id($investigationForm->getObject()->getId());
         $comment->setComment($commentForm->getObject()->getComment());
         $comment->setuserId($investigationForm->getObject()->getCreatedUserId());
         $comment->setDateEntered(time());
         $comment->save();
         $this->redirect('investigation/overdue/');
     }


}

您可以简单地将
$request->getPostParameter('comment')
存储在一个数组中,并在这个数组上使用
array\u pop()
,但我认为更好的方法是理解为什么要获取数组。我认为文本区域的名称必须是
comment[]
,而它可能只是
comment

更新

在阅读您的更新和其他问题后,您似乎需要为字段设置以下命名约定:

<input type="text" name="investigation[field1]"/>
<input type="text" name="investigation[field2]"/>
<input type="text" name="investigation[field3]"/>
<input type="text" name="comment[content]"/>

在表单的小部件架构上使用
setNameFormat()
方法来实现这一点,然后将调查表单绑定到
调查
请求参数,并将您的注释表单绑定到
注释
参数,这样您就没事了


祝你好运

为什么要记下我的问题?对于了解symfony和php的人来说,这似乎很容易,但我不知道+1为了平衡不合理的downvot可能重复的问题,我投票将此问题作为第一个问题的重复关闭,以便将它们合并。@greg感谢您的输入,我更新了上面的问题,使其更清晰,而不是添加带有代码的注释。谢谢。我已经设法更改了注释字段的名称格式,它的名称只是“comment”。我现在可以很好地得到这个值。现在我的问题是,当我尝试将请求绑定到$comment时,我得到了以下错误:警告:array\u key\u exists()[函数.数组key exists]:第一个参数应该是C:\xampp\htdocs\tracking\lib\vendor\symfony\lib\util\sfParameterHolder.class.php中的字符串或整数,在第53行,似乎是$request->->getParameter($commentForm->getName()没有返回任何内容,因此我的绑定函数没有获取两个参数中的一个(可能也没有获取第二个)。请查看getName()方法的代码:它希望名称格式包含“[%s]”。表单名称格式应该是注释[%s],而不仅仅是注释(%s)将包含字段名).好的,但这就是它的开始。在上面,你说“文本区域的名称必须是comment[],而它可能只是comment”。在comment之前是comment['comment'],这就是问题所在,它是一个数组,所以我无法获取值。不过,我今天早上已经开始使用它,并决定以我认为最简单的方式进行操作,只需将它添加到数组中并使用上面所说的数组。\u pop。谢谢您的帮助:)