私は以下のオブジェクト構造を持っています:Order->RepairJobs->Parts
。 Part
にはブール値のプロパティInStock
があります。 Order
にRepairJobs
とParts
が含まれているかどうかを調べる最も効率的な方法は何ですか?私はすべてRepairJob
を繰り返し、それからすべてPart
を渡すべきですか、またはSymfony/Doctrineはこれに対していくつかのスマートな機能を持っていますか?お使いのコントローラの追加クエリビルダでsymfonyオブジェクトを反復する
1
A
答えて
0
:
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$qb->select('p')
->from('AppBundle:Part', 'p')
->where('p.InStock = false');
$parts = $qb->getQuery()->getResult();
パスがそうのような小枝テンプレートをレンダリングする:
return $this->render('show/orders_without_stock.html.twig', array(
'parts' => $parts,
));
が続いて小枝に反復:小枝上記で
<h2>Orders With Parts Not in Stock</h2>
<table>
<tr>
<th>Order</th>
</tr>
{% for part in parts %}
<tr>
<td>{{ part.getRepairJob.getOrder }}</td>
</tr>
{% endfor %}
</table>
、 'part'はPartオブジェクトであり、 'getRepairJob'は修復エンティティを取得するPartメソッドです。これは、RepairJobオブジェクトを取得し、 'getOrder'はOrderオブジェクトを取得するRepairJobメソッドです。 私はあなたのエンティティとそれぞれのエンティティをマッピングする正しいORMアノテーションをセットアップしたとします。 「RepairJobs」と「Parts」の両方がオブジェクトの集合です。
これはうまくいけばうまくいきます。しかし、これがどのように行われているのか、そしてコード化するのが非常に簡単になります。
関連する問題
- 1. JavaScriptオブジェクトを反復する
- 2. JSONオブジェクトを反復する
- 3. jsonオブジェクトを反復する
- 4. Javascript:JSONオブジェクトを反復する
- 5. 反復PHPオブジェクト
- 6. オブジェクトのJSONオブジェクトを反復するFirebase
- 7. オブジェクトのオブジェクトを反復する方法
- 8. オブジェクトのJavascript反復
- 9. Jadeテンプレート内のオブジェクトに対する反復反復?
- 10. 反復中にオブジェクトを変更する
- 11. underscore.jsでオブジェクトを反復する
- 12. React:javascriptオブジェクトのキー値を反復する
- 13. オブジェクトの配列を反復する
- 14. オブジェクトの配列を反復するanglar2
- 15. ngForでJsonオブジェクトを反復する
- 16. PLSQLオブジェクト属性を反復する
- 17. extendedDataTableのオブジェクトのリストを反復する
- 18. オブジェクトのプロパティを反復するJavascriptメソッド
- 19. rspecテストケースでオブジェクトを反復する
- 20. JsonCppでオブジェクトを反復する
- 21. オブジェクトのベクトルを反復するC++
- 22. EJSでmongooseオブジェクトを反復する
- 23. オブジェクトのベクトルを反復する
- 24. javascriptでオブジェクトを反復する
- 25. Javaカスタムクラスのオブジェクトを反復する
- 26. オブジェクトの配列を反復する
- 27. C#でJSONオブジェクトを反復する
- 28. JS - forループのオブジェクトを反復する
- 29. Perlでblessオブジェクトを反復する
- 30. ベクトル要素オブジェクトを反復する