次のフィールドを持つusersという名前のmysqlテーブルがあります:username、password、email新しいユーザーを追加するための「user/update」と「user/update / id/{user_id}」のようなコントローラー/アクションがあります両方のコントローラーに同じZend_Formがあります。新しいユーザーを追加するために、以下のコードを使用して、ユーザー名がすでに存在するかどうかを確認しました。
$username->addValidator('Db_NoRecordExists', true, array('table' => 'user', 'field' => 'username'));
これは、新しいユーザーが追加されたときにうまく機能しますが、ユーザーを編集するときに、ユーザーがユーザー名フィールドをそのままにしておいても、ユーザー名は既に存在するというエラーが発生します。zendが提供する検証は、フィールドを編集するためのDb_NoRecordExistsと同様です。編集の場合、次のようなクエリが必要です。
SELECT COUNT(*) FROM users WHERE username='$username' AND id!=$update_id
これどうやってするの?