Tôi gặp vấn đề với Doctrine 2 và tham gia trái vào mối quan hệ maytomany tôi đang cố gắng làm việc. Đó có thể là công cụ xây dựng truy vấn của tôi, nhưng tôi không thể hình dung ra được.Học thuyết 2 bên tráiHoạt động, với mối quan hệ nhiều, sai số hàng trả về
Tôi có một bảng tham gia như sau:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
Đối với hai mô hình, người dùng và thu hút, nơi tài khoản là chủ sở hữu của các mối quan hệ.
Khi tôi thực hiện truy vấn này:
$attractions = $CI->em->createQueryBuilder()
->select('a', 'u')
->from('\ListLovers\Model\Attraction', 'a')
->leftJoin('a.users', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'u.id = 4')
->getQuery()->getResult();
Người dùng của tôi đếm cho sự hấp dẫn với id của 1 là 1. Tuyệt vời!
Bây giờ nếu tôi thêm một hàng vào bảng tham gia như sau:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
... và thực hiện cùng một truy vấn, người dùng của tôi đếm cho sự hấp dẫn với id của 1 là ... ZERO. Cai gi?
Tôi có thiếu gì đó không?
Xin cảm ơn, Đánh dấu.
Bạn phải sử dụng các trường để tham gia bảng khác (mã nhận dạng tùy chỉnh sử dụng) và bộ lọc phải nằm trong phần "ở đâu" trong truy vấn SQL. – ZhukV