Sonata Admin edit form many to many not working - symfony2.1.6

dagger picture dagger · Jan 11, 2013 · Viewed 8.3k times · Source

I am having a problem with implementing the many to many relationship in the sonata admin edit form, with the following structure.

purchase (id, total_price, discount, created_at)
purchase_product (purchase_id, product_id, quantity)
product (id, title, desc, price, thumbnail, created_at)

I have seen many threads and have tried the solutions listed in them. I have tried

->add('products', 'sonata_type_model', array('by_reference' => false))

I get the following error

No entity manager defined for class Doctrine\ORM\PersistentCollection 

Then when i couldn't find a way to solve this, I switched to

->add('products', 'sonata_type_collection', array(), array('edit' => 'inline', 'inline' => 'table')

I got the following error

INVALID MODE type : sonata_type_collection - mapping : 8 

I am also unable to figure out how to get and display the quantity from the purchase_product table.

Any pointers and help is highly appreciated.

Answer

Daniel Korsak picture Daniel Korsak · Jan 11, 2013

You can try to add 'expanded' => true and 'multiple' => true

->add('products', 'sonata_type_model', array('expanded' => true, 'by_reference' => false, 'multiple' => true))