Tôi có câu hỏi như thế này:Làm cách nào để tạo tiêu chí với truy vấn phức tạp trong khung công tác Yii?
SELECT * FROM activity
WHERE (((userId = 1 OR userId IN(SELECT userId FROM follower WHERE followerId = 1))
AND activityType IN(1, 2, 3))
OR (targetId = 24 AND aType IN(1, 2, 3, 4, 5)))
ORDER BY id DESC;
Tôi đã cố gắng sử dụng model()->findAllBySql($sql)
và nó hoạt động. Nhưng tôi muốn sử dụng nó bằng cách sử dụng CDbCriteria
, nếu bạn có giải pháp khác cho tôi biết: D
Một câu hỏi cũ nhưng tôi cần phải bình luận. Khi xử lý các truy vấn phức tạp ** KHÔNG ** sử dụng bất kỳ ORM nào. Bạn phải đối phó với SQL thuần túy (AR cung cấp phương thức 'findAllBySql()'). –
@Andrzej Ośmiałowski bạn có thể cho chúng tôi lý do tại sao chúng ta nên sử dụng findAllBySql thay vì sử dụng ORM (Tiêu chí). – aslingga