如何将具有 m:n(多对多)关系的表单嵌入到另一个表单中?

发布于 2024-08-25 22:00:09 字数 162 浏览 6 评论 0原文

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

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

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

谢谢

I have a genereated form which handles a m:n relation. The generated form overrides the doSave() method to handle the "list".

If I embed this Form in an other the special doSave() mothod is never called. The result is that everything works fine except that the m:n relation isn't stored.

Do I have to handle the m:n relation manuel?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

塔塔猫 2024-09-01 22:00:09

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

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

This work 'as this' 进行更新/插入操作,但您的模型关系定义必须清晰。

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

可以找到关于此主题的良好文章 这里 这是 symfony 1.3 但相同模式适用。

这种实现的一个很好的论点是,您无需在模块的 actions.class.php 中进行任何更改,从而避免与其(或其)关联模块创建对表单的依赖。

The better using sf 1.4 is using in your form class

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

This work 'as this' for update/insert operations but your model relationship definition must be clear.

For further relation integration, you can override sfForm or sfDoctrineForm methods (especially doBind, doUpdateObject, saveEmbeddedForms) to add selective deletion, specific data binding, etc.

A good arcticle on this topic can be found here It is symfony 1.3 but the same pattens applies.

The good argument for this kind of implementation is that you have nothing to change in your module's actions.class.php and thus avoid creating dependency on form with its (or their) associated module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文