我的应用程序中有3个表。
- event
,event_category
和event_category_connection
。这是两个第一个表之间的多对多关系。我要做的是将sfWidgetFormDoctrineChoice
的类别添加到EventForm
(通过Symfony自动生成 - 学说模型),在保存事件后我将能够自动添加新事件之间的连接现有类别。
$this->widgetSchema['event_category_id'] = new sfWidgetFormDoctrineChoice(array(
'model' => 'EventCategory',
'add_empty' => false,
'multiple'=>"true",
'expanded'=>true));
$this->setValidator('event_category_id', new sfValidatorDoctrineChoice(array(
'model' => 'EventCategory',
'required' => false)));
这是我添加到自动生成EventForm
的内容。据我所知,在创建操作期间,新对象通过$form->getObject()->save()
函数保存。这是我收到错误的地方(未知记录属性/相关组件)。
任何建议如何处理此操作。这就是我想要的代码:
在一个动作中 - >保存对象 - >获取新对象的ID - >保存类别和新对象之间的多对多关系。
Krzycho。
答案 0 :(得分:0)
首先你必须做$form->save()
,然后保存你的关系(这是一种方法,可能有很多方法可以实现):
protected function processForm(sfWebRequest $request, sfForm $form)
{
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{
$obj = $form->save();
$this->saveRelations($request, $obj);
// save the event_category objects in an array: $event_categories
// $obj->EventCategory = $event_categories;
// $obj->save();
}
// ...
}