CakePHP 2.6验证规则isUnique per belongsTo Parent

时间:2015-04-07 19:37:12

标签: validation cakephp cakephp-2.6

我试图找出如何构建验证规则,我可以提供的最简单的示例是与学生发送电子邮件的课程注册。我希望每个班级都能有独特的学生电子邮件注册,但我也希望学生能够使用相同的电子邮件注册多个班级。

班级有多名学生(身份证,姓名,名额)

学生belongsTo Class(id,email,class_id)

示例场景:

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

B班,可以让学生注册:abc@email.edu,因为它是一个不同的班级。

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

1 个答案:

答案 0 :(得分:0)

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

如果任何一个学生可以参加多个班级而一个班级可以有多个学生,那么您的关联需要 hasAndBelongsToMany 。那么,您的students表将没有class_id。您可以设置一个联接表classes_students,其中包含class_idstudent_id

然后,您可以在连接表上添加验证规则,以确保没有学生两次同一课程。请参阅此Making HABTM relationships unique in CakePHP问题。