ZF2 RecordExists メソッドに問題があります。問題のあるケース/シナリオを説明します。
表: ユーザー 列: ID、メールアドレス、ウェブサイト名
Sample Records:
1, user1@email.com, 1site.com
2, user2@email.com, 1site.com
3, user3@email.com, 2site.com
4, user4@email.com, 2site.com
5, user5@email.com, 1site.com
6, user6@email.com, 3site.com
7, user7@email.com, 4site.com
既に存在する状態に次のスニペットを使用しています。
//Check that the email address exists in the database
$validator = new Zend\Validator\Db\RecordExists(
array(
'table' => 'users',
'field' => 'emailaddress'
)
);
if ($validator->isValid($emailaddress)) {
// email address appears to be valid
} else {
// email address is invalid; print the reasons
foreach ($validator->getMessages() as $message) {
echo "$message\n";
}
}
上記のスニペットによると、user1@email.com は再登録できません。なぜなら、そのメールアドレスはテーブルに存在するからです。でも、2site.comに登録したいです。user1@email.com は 1site.com にあるためです。そのため、user1@email.com は 1site.com に再度登録できません。ただし、user1@email.com は 2site.com に登録できます。それはどのように可能ですか?あなたの提案を教えてください。