2015-04-07 2 views
0

Я пытаюсь выяснить, как создать правило проверки, а простейшим примером, который я могу дать, будет регистрация класса со студенческими электронными письмами. Я хочу, чтобы каждый класс мог иметь уникальную подписку на электронные письма студентов, но я также хочу, чтобы учащиеся могли зарегистрироваться с одним и тем же письмом для нескольких классов.CakePHP 2.6 Правило проверки isUnique per принадлежит родительскому

Класс hasMany Студенты (номер, имя, предел)

Student belongsTo Class (идентификатор, электронная почта, class_id)

Пример сценария:

класса А, имеет студент Регистрация: ABC @ электронной почты. edu (Если [email protected] снова присоединился к этому классу, это не позволит.)

Класс B, может быть зарегистрирован студентом: [email protected] снова, так как это другой класс.

Итак, есть ли способ использовать isUnique в сочетании с другим правилом или это обычная ситуация с валидатором? Благодаря!

ответ

0

Я думаю, что я должен ответить на другой вопрос здесь, потому что ваша ассоциация моделей не имеет смысла.

Если какой-либо студент может принять несколько классов, а класс может иметь несколько студентов, то ваша ассоциация должна быть hasAndBelongsToMany. Тогда у вашей таблицы students не было бы class_id. Вместо этого вы создали таблицу соединений, classes_students, которая имела бы class_id и student_id.

Затем вы можете добавить правило проверки на таблицу соединений, чтобы убедиться, что ни один студент не принимает тот же класс дважды. См. Этот вопрос Making HABTM relationships unique in CakePHP.

+0

Понял, я попробую эту модельную ассоциацию. Благодаря! –

Смежные вопросы