Symfony2.7 でDoctrineによるデータ取得をしたところ、データ取得メソッドによって、DB値が異なるということが起きました。
コードの内容は、以下のような流れになっています。
php
1// 以下処理の前にデータ更新処理をしている 2 3$repository = $em->getRepository(‘何かEntityのクラス’); 4$db = $em->createQueryBuilder('A'); 5 6// $db->andWhere, $db->setParameterで色々条件指定 7 8$query = $db->getQuery(); 9 10var_dump($query->getArrayResult()); 11var_dump($query->getResult());
$query->getArrayResult()
では、更新した結果のデータ値が取れましたが、 $query->getResult()
では更新前のデータが取れました。
acpによるキャッシュの設定も config/*.yml では指定していない状況です。
上記のようなコードはメソッドでまとめてあり、別の更新機能でこのメソッドを呼んだ時は、$query->getResult()
で更新した結果のデータ値が取得できました。
$query->getResult()
で受け取った値をtwig出力内容として使いたく、$query->getResult()
で更新後のデータ値を取得する方法を模索しています。
どのあたりを疑えば良いか等、ご意見をいただけると助かります。
追記:
$query->getResult()
で受け取った値をtwig出力内容として使いたく、$query->getResult()
で更新後のデータ値を取得する方法を模索しています。
$query->getArrayResult()
でもtwigの方で扱えたので、こちらを使って対応しました。が、なぜ二つのメソッドで結果が違うのか?という謎は、Doctrineのコードを見てみても自分には解決できませんでした。
やりたいことは解決できましたが、謎が解決してない状態なので、回答受付中のままとしておきます。
あなたの回答
tips
プレビュー