sql >> データベース >  >> RDS >> Mysql

Doctrine2の動的テーブル/エンティティ名

    質問は古いですが、誰かに役立つ可能性があります。

    loadClassMetadaが毎回呼び出される場合は、コードに問題があるようですが、メタデータはDoctrineによってキャッシュされていると思います。その場合は、直接変更できます。次のコードスニペットを参照してください。動作するはずです:

    <?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. より長いVARCHAR2列を定義することの影響

    2. SQLDeveloperでシーケンストリガーからPKを作成する方法を学ぶ

    3. 列の値を列名として使用するmysql

    4. データベースからのphpデータは検索後に表示されません