Sonata Admin 编辑表单多对多不起作用 - symfony2.1.6
Posted
技术标签:
【中文标题】Sonata Admin 编辑表单多对多不起作用 - symfony2.1.6【英文标题】:Sonata Admin edit form many to many not working - symfony2.1.6 【发布时间】:2012-12-26 12:36:50 【问题描述】:在奏鸣曲管理编辑表单中实现多对多关系时遇到问题,结构如下。
purchase (id, total_price, discount, created_at)
purchase_product (purchase_id, product_id, quantity)
product (id, title, desc, price, thumbnail, created_at)
我已经看到了很多线程并尝试了其中列出的解决方案。我试过了
->add('products', 'sonata_type_model', array('by_reference' => false))
我收到以下错误
No entity manager defined for class Doctrine\ORM\PersistentCollection
然后当我找不到解决这个问题的方法时,我切换到了
->add('products', 'sonata_type_collection', array(), array('edit' => 'inline', 'inline' => 'table')
我收到以下错误
INVALID MODE type : sonata_type_collection - mapping : 8
我也无法弄清楚如何从 purchase_product 表中获取和显示数量。
非常感谢任何指针和帮助。
【问题讨论】:
【参考方案1】:您可以尝试添加 'expanded' => true 和 'multiple' => true
->add('products', 'sonata_type_model', array('expanded' => true, 'by_reference' => false, 'multiple' => true))
【讨论】:
谢谢丹尼尔,有没有办法我可以加载最后一个关联产品及其详细信息,而不是加载所有带有复选框的产品 - 我还需要显示 purchase_product 中的数量表(链接表) - 有什么办法吗?以上是关于Sonata Admin 编辑表单多对多不起作用 - symfony2.1.6的主要内容,如果未能解决你的问题,请参考以下文章
在 Sonata Admin 的列表视图(角色/权限)中编辑
Sonata Admin Bundle 和 Doctrine 问题:如何从反面更新实体?