Как получить значение текстовой области в Symfony - PullRequest
0 голосов
/ 11 мая 2011

Кажется, я не могу получить введенный текст текстовой области.Когда я делаю:

die($request->getPostParameter('comment')) 

Он выводит слово «массив».Когда я print_r() показывает, что текстовое поле является массивом, а его значение сохраняется в массиве.Но я не знаю, как получить это значение, чтобы я мог поместить его в поле в таблице.

@ greg0ire: Я делаю это, потому что я пытаюсь сохранить данные в две разные таблицы.Моя HTML-страница отображает форму, которая на самом деле состоит из двух форм из двух разных классов / моделей.Мне удалось сохранить все поля в обеих таблицах, кроме поля комментария.Затем я попытался получить значение и понять, что это массив, и подумал, не из-за этого ли мои данные не сохраняются.Вот почему я задаю этот вопрос.Я задал еще один вопрос , который объясняет контекст.

Это функции, которые запускаются при нажатии кнопки отправки

   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/');
     }


}

1 Ответ

2 голосов
/ 11 мая 2011

Вы можете просто сохранить $request->getPostParameter('comment') в массиве и использовать array_pop() в этом массиве, но я думаю, что было бы лучше понять, почему вы получаете массив. Я думаю, что имя текстовой области должно быть comment[], тогда, вероятно, оно должно быть просто comment.

UPDATE

После прочтения вашего обновления и вашего другого вопроса кажется, что вам нужно иметь соглашение об именах для ваших полей:

<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() в схеме виджета ваших форм, чтобы достичь этого, затем привяжите свою форму исследования к параметру запроса investigation, а форму комментария к параметру comment, и все будет в порядке.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...