我認爲這是一種常見模式,但我找不到優雅的CakePHP方式。這個想法是從列表中刪除已經選擇的值。要使用從蛋糕預定一個例子:Cakephp 3 NOT IN查詢
table Students (id int, name varchar)
table Courses (id int, name varchar)
table CoursesMemberships (id int, student_id int, course_id int, days_attended int, grade varchar)
所有我想要做的就是創建一個查詢,它返回一個給定的學生還沒有報名參加了課程,最有可能來填充選擇下拉。
如果我沒有使用蛋糕,我會做這樣的事情
select * from Courses where id not in
(select course_id from CoursesMemberships where student_id = $student_id)
也許等效NOT EXISTS子句,或外連接弄虛作假,但你的想法。
我很難過如何在Cake中優雅地做到這一點。在我看來,這將是一個普遍的需求,但我已經研究了一段時間,並嘗試了一些查詢思路,但無濟於事。
我設法使用更復雜的機制來完成這項工作(請參閱上面的註釋)。但是我一直在尋找的是一種簡單的查詢方式,而不是查詢現有記錄,將它們強制轉換爲數組,然後使用上述方法。 –
看到這個例子:http://book.cakephp.org/3.0/en/orm/query-builder.html#subqueries – user3082321