我有一个处理 am:n 关系的生成表单。生成的表单会覆盖 doSave() 方法来处理“列表”。
如果我将此表单嵌入到另一个表单中,则永远不会调用特殊的 doSave() 方法。结果是一切正常,只是没有存储 m:n 关系。
我必须处理 m:n 关系手册吗?
谢谢
我有一个处理 am:n 关系的生成表单。生成的表单会覆盖 doSave() 方法来处理“列表”。
如果我将此表单嵌入到另一个表单中,则永远不会调用特殊的 doSave() 方法。结果是一切正常,只是没有存储 m:n 关系。
我必须处理 m:n 关系手册吗?
谢谢
更好地使用 sf 1.4 是在您的表单类中使用
public function configure() {
$this->embedRelation('relationName');
//other configuration
}
这项工作'as this' 用于更新/插入操作,但您的模型关系定义必须清楚。
对于进一步的关系集成,可以重写 sfForm 或 sfDoctrineForm 方法(尤其是 doBind、doUpdateObject、saveEmbeddedForms)来添加选择性删除、特定数据绑定等。
关于这个主题的一篇很好的文章可以在这里找到。它是 symfony 1.3,但同样的模式也适用。
这种实现的好理由是您无需更改模块的 actions.class.php ,从而避免创建对表单及其(或它们的)关联模块的依赖。