私はYiiフォームacceptfirst name
とユーザーlast name
から持っていemail
ます。リンクを使用するadd more
と、ユーザーはこれら 3 つの要素の複数の行を追加できます。
電子メールの検証については、モデル ルールで設定されてunique
おりrequired
、すべて正常に動作します。add more
リンクをクリックすると追加行を作成するために JavaScript を使用しています。
問題
最初の行の値はJohn, Newman, johnnewman@gmail.com
で、2 番目の行は と入力してMathew, Heyden, johnnewman@gmail.com
います。この場合、メールアドレスが重複しています。検証ルール (require
およびunique
) のいずれも、これを検証できません。これを検証するためのより良い方法を提案できますか?
更新:
カスタム検証関数を作成しましたが、これで問題を解決するのに十分だと思います。カスタム検証関数でform data
/全体にアクセスする方法を教えてもらえますか?post data
public function uniqueOnForm($attribute){
// This post data is not working
error_log($_REQUEST, true);
$this->addError($attribute, 'Sorry, email address shouldn\'t be repeated');
}