データを取りたいが重複したデータ(先頭データ)しか取れない
コントローラ内で、
KaraagekunController.php
$this->KaraagekunRepository->findBy(['id' => $id]);
としてRepository経由でfindByしてデータを取ろうとしたら、
同じレコードが3件返ってきていた。
件数は3件で間違っていないものの、同じレコードが返ってくるのはおかしいと思って調べました。
doctrineでは主キーの無いテーブルを推奨していない
みたいです。
なので、主キーの無いテーブルに対してレコード取ろうとしてて、
doctrine側でレコードが認識できずに変な値が返ってくるみたいですね。
解決方法
Repository内でQueryBuilderを使って取るしか方法なさそうでした。
KaraagekunRepository.php
public function getData($id) {
return $this->createQueryBuilder('t')
->select('t.id, t.type, t.price')
->where('t.id = :id')
->setParameter('id', $id)
->getQuery()
->getResult();
}
KaraagekunController.php
$result = $this->KaraagekunRepository->getData($id);
そもそも主キーの無いテーブルがいいのか悪いのかって議論があると思いますが、
一応こういうやり方で取れましたっていう報告です。
ご参考までに!