Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Dynamische Tabellen-/Entitätsnamen in Lehre 2

Die Frage ist alt, aber sie kann für jemanden hilfreich sein.

Wenn loadClassMetada jedes Mal aufgerufen wird, scheint das Problem in Ihrem Code zu liegen. Aber ich nehme an, dass Metadaten von Doktrin zwischengespeichert werden. In diesem Fall können Sie sie direkt ändern, sehen Sie sich bitte das folgende Code-Snippet an, es sollte funktionieren:

<?php
class FooController extends Controller {
  function fooAction() {
    $em = $this->getDoctrine()->getEntityManager();
    $cm = $em->getClassMetadata('FooBundle:FooEntity');
    $cm->setTableName('special_table_name');
    $repo = $em->getRepository('FooBundle:FooEntity');
    $entities = $repo->createQueryBuilder('f')
            ->setMaxResults(1)
            ->orderBy('f.id', 'desc')
            ->getQuery()
            ->getResult();
    return new Response('');
  }
}