से यादृच्छिक उत्पाद मिल मैं निम्नलिखित डेटाबेस योजना है:Symfony2 सिद्धांत एक वर्ग
table 'products'
id
category_id
और निश्चित रूप से एक वर्ग तालिका, बस एक आईडी के साथ।
डेटा है कि कुछ इस तरह दिखाई:
Products
--------------------
| id | category_id |
--------------------
| 0 | 1 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 1 |
--------------------
मैं एक वर्ग (उदाहरण के लिए श्रेणी 1) का चयन करना चाहते हैं, इसलिए मैं अपने उत्पाद-भंडार कक्षा में उस श्रेणी से सभी पंक्तियों का चयन करें:
return $this
->createQueryBuilder('u')
->andWhere('u.category = :category')
->setMaxResults(1)
->setParameter('category', $category->getId())
->getQuery()
->getSingleResult()
;
अब मैं एक यादृच्छिक उत्पाद कैसे चुन सकता हूं? इसके अलावा: क्या रिश्तों के माध्यम से इसे हल करना संभव है?
मैं संस्थाओं "श्रेणी" और "उत्पाद" के बीच एक OneToMany रिश्ता है, इसलिए मैं भी getProducts() श्रेणी के माध्यम से सभी उत्पादों मिल सकता है> ...
किसी भी मदद वास्तव में उपयोगी होगा, धन्यवाद
'getResult' गिनती क्वेरी पर नहीं होना चाहिए' getSingleScalarResult'? – Machiel
मुझे पता है कि जब मैंने उत्तर दिया तो इस स्निपेट ने काम किया, लेकिन मैंने थोड़ी देर में सिद्धांत को छुआ नहीं है, इसलिए चीजें बदल सकती हैं। –
यहां फ़ंक्शन का उपयोग करने के लिए तैयार है: https://gist.github.com/Thinkscape/124d658e4076421c0516 –