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

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

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

ruby - Net::HTTP extremely slow responses for HTTPS requests -