###課題
新規登録時に email
と hoge_id
の複数のカラムでユニークにしたいのですが、
調べてもなかなか出てこず、ハマりました(汗)
###ソースコード
public function validationSignup(Validator $validator) { $validator->provider('signup', $this); $validator ->email('email') ->add('email', 'isUnique', [ 'rule' => 'isEmailUnique', 'message' => 'メールアドレスがすでに使用されています', 'provider' => 'signup' ]) ->notEmpty('email'); return $validator; }
public function isEmailUnique($value,$context){ $conditions = [ ['email'] => $value, ]; if(isset($context['data']['id']) && !empty($context['data']['id'])){ $conditions["id !="] = $context['data']['id']; } $count = $this->find()->where($conditions)->count(); return $count == 0; }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。