2

我有一个处理 am:n 关系的生成表单。生成的表单会覆盖 doSave() 方法来处理“列表”。

如果我将此表单嵌入到另一个表单中,则永远不会调用特殊的 doSave() 方法。结果是一切正常,只是没有存储 m:n 关系。

我必须处理 m:n 关系手册吗?

谢谢

4

1 回答 1

1

更好地使用 sf 1.4 是在您的表单类中使用

public function configure() {
    $this->embedRelation('relationName'); 
    //other configuration
}

这项工作'as this' 用于更新/插入操作,但您的模型关系定义必须清楚。

对于进一步的关系集成,可以重写 sfForm 或 sfDoctrineForm 方法(尤其是 doBind、doUpdateObject、saveEmbeddedForms)来添加选择性删除、特定数据绑定等。

关于这个主题的一篇很好的文章可以在这里找到。它是 symfony 1.3,但同样的模式也适用。

这种实现的好理由是您无需更改模块的 actions.class.php ,从而避免创建对表单及其(或它们的)关联模块的依赖。

于 2010-03-22T12:17:47.200 回答