Tôi đang cố gắng để xây dựng một truy vấn với các nhà xây dựng truy vấn học thuyết mà tham gia một bảng không có liên quan như thế này:Symfony 2: INNER JOIN trên bàn không có liên quan với người xây dựng truy vấn học thuyết
$query = $this->createQueryBuilder('gpr')
->select('gpr, p')
->innerJoin('TPost', 'p')
->where('gpr.contentId = p.contentId')
Nhưng điều này không công việc. Tôi vẫn gặp lỗi:
Error: Identification Variable TPost used in join path expression but was not defined before.
Tôi đã tìm kiếm thông báo lỗi này và mọi người trả lời sử dụng bí danh bảng + thuộc tính như p.someAttribute. Nhưng bảng tôi muốn tham gia không liên quan trong bảng tôi bắt đầu lựa chọn của mình.
Là một truy vấn mysql bình thường tôi sẽ viết nó như thế này:
SELECT * FROM t_group_publication_rel gpr
INNER JOIN t_post p
WHERE gpr.content_id = p.content_id
Bất kỳ ý tưởng những gì tôi đang làm sai?
Chúng ta có thể sử dụng DQL để thực hiện tham gia với các đối tượng không liên quan? Tôi không biết. Nếu có thể, it0s thú vị =). – sensorario
Tại sao bạn không chỉ * xây dựng * một mối quan hệ giữa hai, nếu bạn muốn tham gia cùng họ? –
Trong trường hợp này, một mối quan hệ sẽ không đủ. Tôi sẽ cần quan hệ với 3 bảng khác nhau và bất kỳ bản ghi nào chỉ có thể đặt tham chiếu đến 1 trong số này 3. –