sql >> Databáze >  >> RDS >> Mysql

Dynamické názvy tabulek/entit v Doktríně 2

Otázka je stará, ale pro někoho může být užitečná.

Pokud pokaždé volá loadClassMetada, zdá se, že jde o problém ve vašem kódu. Předpokládám však, že tato metadata jsou uložena v mezipaměti doctrine. V takovém případě je můžete změnit přímo, podívejte se prosím na následující fragment kódu, mělo by to fungovat:

<?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('');
  }
}



  1. SQlite Query v Androidu pomocí kurzoru

  2. 15 užitečných tipů pro ladění a optimalizaci výkonu MySQL/MariaDB

  3. vyberte součet do určité částky a poté aktualizujte určitá pole na základě podmínky

  4. Jak se připojit k MySQL DB běžící jako kontejner v dockeru?