一个模块中有两种形式

时间:2011-08-26 14:59:44

标签: php symfony1 doctrine symfony-1.4

我想在一个页面中修改两个表单。我用Doctrine生成了一个模块。我有:

public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($news = Doctrine_Core::getTable('News')->find(array($request->getParameter('news_id'))), sprintf('Object news does not exist (%s).', $request->getParameter('news_id')));
    $this->form = new NewsForm($news);
  }

这很好。

我补充说:

public function executeEdit(sfWebRequest $request)
      {
        $this->forward404Unless($news = Doctrine_Core::getTable('News')->find(array($request->getParameter('news_id'))), sprintf('Object news does not exist (%s).', $request->getParameter('news_id')));
        $this->form = new NewsForm($news);
        $this->forward404Unless($other = Doctrine_Core::getTable('Other')->findByNewsId(array($request->getParameter('other_id'))), sprintf('Object other does not exist (%s).', $request->getParameter('other_id')));
        $this->form = new OtherForm($other);
      }

我收到此错误:

 500 | Internal Server Error | sfException The "OtherForm" form only
 accepts a "Other" object.

我使用findByNewsId()

这没关系 - 如果我做foreach然后我有这些对象,但我不能在表单中显示。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

听起来(粗略地)你想要在一个表单中编辑多个对象 - 所以在你的例子中,多个“其他”项目(你的问题目前有点不清楚)。如果是这样,您可能需要查看Symfony的嵌入式表单功能 - 有关详细信息,请参阅this tutorial