データベースアクセスの基本

Symfony2

Doctrineによるデータベースへのアクセスの基本は以下になります。
1. Controllerクラスからアクセスする
2. Controllerクラスで$this->getDoctrine()->getEntityManager()とやって、エンティティマネージャを取得する
$em = $this->getDoctrine()->getEntityManager();
3. エンティティマネージャ($em)のgetRepositoryメソッドを呼び出して、対象エンティティ(テーブル)のリポジトリ
を得る
$repository = $em->getRepository(‘MyDBCommandBundle:ReportMonitor’)->$func($value);
4. 3.で得られたリポジトリオブジェクトに対して、find系メソッドを使用して必要な情報を得る
$repository->findAll();

すべてのデータを抽出する

単一の一致条件による検索

単一の一致条件による検索をする場合は、それ用のメソッドがリポジトリに用意されます。
たとえば、値段(price)フィールドが100のものを検索したい場合は以下のようにします。

このように「findBy(一致条件)」という形でメソッドを呼び出すことで
そのパラメータ名が一致条件に一致したものの一覧を抽出できます。

複数の一致条件による検索

複数の一致条件による検索をする場合は、findBy()メソッドを使用します。
第一引数には、フィールドとその一致条件の連想配列を、第二引数にはソート条件を
指定します。

たとえば、色(color)がred、かつ、値段が100のものを検索する場合は以下のようにします。

また、色がblueのものを値段が安い順に並べるには以下のようにします。

ちなみに、商品が一つの場合は、findBy()ではなくfindOneBy()を使うことで結果へのアクセスが
スマートになります。
の商品を値段の安い順に並べる場合は以下のようにします。

タイトルとURLをコピーしました