I have a fairly common use case that I am trying to implement, but I am encountering some issues related to the Admin Symanty Sonata (ORM) package. My model has a relationship between Facility and Sport, which is based on three entity classes: Sport, Facility, and SportsFacility. I followed the example of http://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/form_field_definition.html#advanced-usage-one-to-many and was defined in the following classes (only for the relevant parts )
class Sport { protected $facilities; public function getFacilities() { return $this->facilities; } public function setFacilities($facilities) { $this->facilities = $facilities; return $this; } } class Facility { protected $sports; public function getSports() { return $this->sports; } public function setSports($sportsFacilities) { $this->sports = $sportsFacilities; return $this; } public function addSports($sportsFacilities) { $this->sports = $sportsFacilities; return $this; } } class SportsFacility { protected $sportsFacilityId; protected $sport; protected $facility; public function getSportsFacilityId() { return $this->sportsFacilityId; } public function setSportsFacilityId($sportsFacilityId) { $this->sportsFacilityId = $sportsFacilityId; return $this; } public function getSport() { return $this->sport; } public function setSport($sport) { $this->sport = $sport; return $this; } public function getFacility() { return $this->facility; } public function setFacility($facility) { $this->facility = $facility; return $this; } }
In my FacilityAdmin class, I have:
protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('name') ->with('Sports') ->add('sports', 'sonata_type_collection', array('by_reference' => false), array( 'edit' => 'inline', 'inline' => 'table', )) ->end(); }
When I try to add a new relation, I get the following error: The expected argument of type "array or \ Traversable", "Clarity \ CoachTimeBundle \ Entity \ SportsFacility", given in the section "vendor / sonata-project / admin-bundle / Sonata / AdminBundle / Form / EventListener / ResizeFormListener.php on line 88 "
source share