我认为这是一个常见的模式,但我找不到优雅的CakePHP方法来实现它。思路是从已选择项列表中删除值。以Cake书中的例子为例:
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)
我希望做的是创建一个查询,返回给定学生尚未注册的课程,很可能用于填充选择下拉列表。
如果我没有使用Cake,我会这样做
select * from Courses where id not in
(select course_id from CoursesMemberships where student_id = $student_id)
也许使用等效的NOT EXISTS子句或外连接技巧,但你已经有了想法。
我不知道如何在Cake中优雅地完成这个操作。我认为这应该是一个常见的需求,但我研究了一段时间,并尝试了一些查询方法,但都没有成功。