我有一种处理m:n关系的基因处理形式。生成的表单会覆盖doSave()方法以处理“列表”。
如果我将此表单嵌入到另一个表单中,则永远不会调用特殊的doSave()方法。结果是一切正常,只是没有存储m:n关系。
我是否必须处理m:n关系manuel?
由于
答案 0 :(得分:1)
使用sf 1.4越好在表单类
中使用public function configure() {
$this->embedRelation('relationName');
//other configuration
}
这对于更新/插入操作“正如此”,但您的模型关系定义必须清晰。
对于进一步的关系集成,您可以覆盖sfForm或sfDoctrineForm方法(尤其是doBind,doUpdateObject,saveEmbeddedForms)以添加选择性删除,特定数据绑定等。
可以找到关于这个主题的好的论文here这是symfony 1.3,但适用相同的模式。
这种实现的好理由是你在模块的actions.class.php中没有任何改变,因此避免与其(或它们的)相关模块创建对表单的依赖。