Две формы в одном модуле - PullRequest
0 голосов
/ 26 августа 2011

Я хотел бы изменить две формы на одной странице.Я сгенерировал модуль с 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.

Iиспользуйте findByNewsId()

Это работает нормально - если я делаю foreach, тогда у меня есть эти объекты, но я не могу показать это в Форме.Как мне этого добиться?

1 Ответ

1 голос
/ 26 августа 2011

Звучит (примерно) так, как будто вы хотите редактировать несколько объектов в одной форме - так что в вашем примере несколько «других» элементов (ваш вопрос в настоящее время немного неясен). Если это так, вы, вероятно, захотите взглянуть на функциональность встроенных форм Symfony - подробности см. в этом руководстве .

...