2015-02-17 20 views
14

Tôi đang tìm cách sử dụng Doctrine trong Symfony 2 để tìm các mục bằng cách sử dụng một mảng có thứ tự của id.Symfony 2 Doctrine tìm thấy theo thứ tự mảng id

Tôi có một thực thể Thẻ có id (khóa chính) và tiêu đề.

Tôi có một thực thể ListCards với id (khóa chính) và một listCards (một mảng của id mã hóa: ["16", "2", "84"])

đầu tiên tôi lấy danh sách và sau đó tôi cần phải tìm thẻ với những id trong thứ tự đó.

tôi cố gắng một cái gì đó như:

$idsArray = ["16", "2", "84"]; 
$cardRepository->findby($idsArray); 

nhưngDoctrine lấy thẻ của tôi trong ASC trật tự.

ORDER BY FIEDS phương pháp sql dường như không được hỗ trợ bởi học thuyết.

Có giải pháp đơn giản nào cho loại phân loại đó không?

Cảm ơn bạn (và xin lỗi vì tiếng anh xấu của tôi).

Trả lời

0

Bạn có thể tạo một bảng helper, nơi bạn lưu trữ ra lệnh các yếu tố theo nhóm, có các dữ liệu sau: (group_id, card_id, order)

Bạn tìm kiếm theo group _id, trật tự bởi order và đọc card_id.

+0

Cảm ơn bạn. Tôi sẽ thử một cái gì đó như thế này. Quá xấu không có tham số sắp xếp ngoài ASC ou DESC trong phương thức docBine findBy. – Benjamin

17

Bạn có thể sử dụng nó như:

$cardRepository->findBy(array('id' => $idsArray), array('id' => 'DESC')); 

Kiểm tra cũng the official doctrine documentation để biết thêm chi tiết về cách sử dụng trật tự, hạn chế và bù đắp như thứ hai để các thông số thứ tư trong phương pháp findBy.

+0

Cảm ơn câu trả lời của bạn nhưng tôi không muốn một thứ tự DESC nhưng thứ tự mảng của tôi. Và tôi không tìm thấy bất kỳ tham số nào trong phương thức ‘findBy’ cho phép loại tính năng này. – Benjamin

+0

Bạn có thể gửi mảng $ idsArray và mảng với các thực thể đến cành. Sau đó, bạn có thể sử dụng vòng lặp cho $ idsArray. –

+1

Đây là những gì tôi đã làm nhưng tôi nghĩ rằng đó là một chút bẩn: p – Benjamin

Các vấn đề liên quan