php - Symfony Form for ManyToMany Entity using a custom query builder -


the error message looks this:

[semantical error] line 0, col 58 near 'events = :eventid': error: invalid pathexpression. statefieldpathexpression or singlevaluedassociationfield expected.

which right, since it's manytomany join, join table. how have load entities?

the problem in activity form (at end). try load town's assigned manytomany join specific event. code says more 1000 words, take (:

so have 3 entities in symfony app. event, town, activity

the event looks this:

// ...  /**  * @var string  *  * @orm\column(name="name", type="string", length=255)  * @gedmo\versioned  */ private $name;  /**  * @orm\manytomany(targetentity="town", inversedby="events")  * @orm\jointable(name="events_to_towns")  **/ private $towns;  /**  * @orm\onetomany(targetentity="activity", mappedby="event")  */ private $activitys;  // ... 

the town looks this:

// ...  /**  * @var string  *  * @orm\column(name="name", type="string", length=255)  * @gedmo\versioned  */ private $name;  /**  * @orm\manytomany(targetentity="event", mappedby="towns")  */ private $events;  /**  * @orm\onetomany(targetentity="activity", mappedby="town")  */ private $activitys;  // ... 

the activity looks this:

// ...  /**  * @var string  *  * @orm\column(name="name", type="string", length=255)  * @gedmo\versioned  */ private $name;  /**  * @orm\manytoone(targetentity="town", inversedby="activitys")  * @orm\joincolumn(name="town_id", referencedcolumnname="id")  */ private $town;  /**  * @orm\manytoone(targetentity="event", inversedby="activitys")  * @orm\joincolumn(name="event_id", referencedcolumnname="id")  */ private $event;  // ... 

that's working. problem in form activity, when i'd assign town, or multiple. try load towns mapped event.

// ...  public function __construct($eventid) {     $this->_eventid = $eventid; }  public function buildform(formbuilderinterface $builder, array $options) {     $eventid = $this->_eventid;      $builder         // ...          // work's expected!         ->add('category', 'entity', array(             'required'      => true,             'label'         => 'kategorie',             'class'         => 'fooeventbundle:category',             'property'      => 'name',             'query_builder' => function(\foo\eventbundle\entity\categoryrepository $er) use ($eventid) {                 return $er->createquerybuilder('c')                     ->select('c')                     ->where('c.event = :eventid')                     ->setparameter('eventid', $eventid)                 ;             }         ))          // here's problem!         ->add('town', 'entity', array(             'required'      => true,             'label'         => 'stadt',             'class'         => 'fooeventbundle:town',             'property'      => 'name',             'query_builder' => function(\foo\eventbundle\entity\townrepository $er) use ($eventid) {                 return $er->createquerybuilder('t')                     ->select('t')                     ->where('t.events = :eventid')                     ->setparameter('eventid', $eventid)                 ;             }         ))          // ...      ; }  // ... 

something like:

            $er->createquerybuilder('t')             ->select('t')             ->join('t.events', 'e')             ->where('e.id = :eventid')             ->setparameter('eventid', $eventid) 

should work.


Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -