0

我试图弄清楚如何建立一个验证规则,我能给出的最简单的例子就是一个带有学生电子邮件的班级注册。我希望每个班级都能够注册唯一的学生电子邮件,但我也希望学生能够使用相同的电子邮件注册多个班级。

Class hasMany Students (id, name, limit)

Student belongsTo Class (id, email, class_id)

示例场景:

A班,有学生注册:abc@email.edu(如果abc@email.edu再次注册该班,则不允许。)

B 类,可以有学生注册:abc@email.edu 再次因为它是一个不同的类。

那么有没有办法将 isUnique 与另一个规则结合使用,或者这是自定义验证器的情况?谢谢!

4

1 回答 1

0

我想我必须在这里回答一个不同的问题,因为您的模型关联没有意义。

如果任何一个学生可以参加多个课程并且一个班级可以有多个学生,那么您的关联需要是hasAndBelongsToMany。那么,您的students桌子不会有class_id. 相反,您将设置一个连接表,classes_students,其中将有一个class_idstudent_id

然后,您可以在连接表上添加验证规则,以确保没有学生两次上同一门课。请参阅此使 HABTM 关系在 CakePHP问题中独一无二。

于 2015-04-08T06:08:10.273 回答