Symfony 3.3 と Doctrine ORM を使ってデータベースからデータを取得しようとしています。
記事(Article)とカテゴリー(Category)があり、Doctrine ORM の ManyToOneで1対多の関係を設定しています。
記事をカテゴリーのIDで絞り込んで取得しようと思うのですが、正しく取得することができません。
php
1$qb = $this->createQueryBuilder(“a”); 2 3$qb->where('a.category_id = :category_id') 4 ->setParameter('category_id', 100); 5$query = $qb->getQuery(); 6$items = $query->getResult();
Error: Class AppBundle\Entity\Article has no field or association named category_id
articles のテーブルには category_id の列が存在します。しかしエンティティの方には $categoryはあるものの $category_id はありません。
php
1/** 2 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Category”, inversedBy=“articles") 3 * @ORM\JoinColumn(name=“category_id", referencedColumnName="id") 4 */ 5protected $category;
求めている動作はSQLでいうと次のような形です。
SELECT * FROM articles WHERE articles.category_id = :category
クエリビルダーのwhereは実際には [‘フィールド名’ => ‘値の文字列’] の配列で検索条件を指定できる関数にする予定です。
そのためシンプルにカテゴリーIDの数値だけを使って絞り込み取得をしたいのですがどのようにすればいいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/28 23:00