tôi có chương trình cơ sở dữ liệu sau đây:Symfony2 thuyết có được sản phẩm ngẫu nhiên từ một loại
table 'products'
id
category_id
và dĩ nhiên là một bảng category, chỉ với một id.
Dữ liệu trông giống như thế:
Products
--------------------
| id | category_id |
--------------------
| 0 | 1 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 1 |
--------------------
Tôi muốn chọn một danh mục (ví dụ loại 1), vì vậy tôi chọn tất cả các hàng từ loại đó trong lớp sản phẩm kho của tôi:
return $this
->createQueryBuilder('u')
->andWhere('u.category = :category')
->setMaxResults(1)
->setParameter('category', $category->getId())
->getQuery()
->getSingleResult()
;
Bây giờ tôi có thể chọn một sản phẩm ngẫu nhiên? Ngoài ra: Có thể giải quyết vấn đề này thông qua các mối quan hệ không?
Tôi có một mối quan hệ giữa các thực thể OneToMany "Thể loại" và "sản phẩm", vì vậy tôi cũng có thể nhận được tất cả các sản phẩm qua Category-> GetProducts() ...
Bất kỳ trợ giúp sẽ được thực sự hữu ích, thanks
nên 'getResult' trên truy vấn số không được ' getSingleScalarResult'? – Machiel
Tôi biết đoạn mã này hoạt động khi tôi trả lời, nhưng tôi đã không chạm vào Doctrine trong một thời gian để mọi thứ có thể đã thay đổi. –
Đây là một chức năng sẵn sàng để sử dụng: https://gist.github.com/Thinkscape/124d658e4076421c0516 –