2015-04-07 42 views
0

我想弄清楚如何建立一个验证规则,最简单的例子,我可以给与学生的电子邮件类注册。我希望每个班级都能够拥有独特的学生电子邮件注册,但我也希望学生能够使用同一封电子邮件注册多个班级。CakePHP 2.6验证规则isUnique每belongsTo父

类的hasMany学生(ID,姓名,限制)

学生属于关联类(ID,电子邮件,类标识码)

示例场景:

A类,有学生注册:ABC @电子邮件。 edu(如果[email protected]为此班级再次注册,则不允许)。

B班,可能会有学生注册:[email protected],因为它是不同的班级。

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

回答

0

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

如果任何一个学生可以参加多个班级,而一个班级可以有多个学生,那么您的关联需要为hasAndBelongsToMany。那么你的students表将不会有class_id。您将设置一个连接表,classes_students,它将有一个class_idstudent_id

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

+0

明白了,我会试试这个模特协会。谢谢! –