Ich versuche zu erzeugen, eine Auswahl bieten mit> 300 EntscheidungenEin einzelner EntityType eine große Menge von Abfragen
$form->add('products', EntityType::class, array(
'class' => Product::class,
'query_builder' => function (ProductRepository $er) use ($customerId) {
return $er->QBByCustomer($customerId);
},
'choice_label' => 'l.name',
));
Die Querybuilder:
public function QBByCustomer($customer = null)
{
return $this->QB()
->addSelect('p.name AS HIDDEN name')
->join('p.customer', 'c')
->join('p.label', 'l')
->where('c.customer = :customer')
->setParameter('customer', $customer)
->addOrderBy('name')
;
}
Wenn ich die Form machen, Lehre erzeugt > 300 Abfragen, um alle verwandten Objekte zu laden.
Gibt es eine Möglichkeit, Doctrine anzuweisen, die Beschriftungen aus dem QueryBuilder zu verwenden, statt so viele Abfragen wie auswählbare Elemente abzufeuern?
können Sie zeigen eine dieser Abfrage? Nach was suchen sie? – Matteo
Zeigen Sie den Code und die Zuordnung der Produkteinheit an. – Gerry
Ich schlage folgendes vor: benutze den fetch = "extra_lazy" für die Entity - Beziehung, die Verwendung von ',' multiple '=> true,' expanded '=> true' –