Esempio n. 1
0
 private function _validateProperty($member)
 {
     $idValueMap = $member->getPropertyMap();
     //get all property
     $memberProperties = MemberProperty::getByAccount($member->accountId);
     foreach ($memberProperties as $memberProperty) {
         $id = $memberProperty->_id . '';
         //validate require
         if ($memberProperty->isRequired && !isset($idValueMap[$id])) {
             throw new InvalidParameterException([$id => \Yii::t('member', 'require_filed')]);
         }
         //validate unique
         if ($memberProperty->isUnique && isset($idValueMap[$id]) && $idValueMap[$id] != "") {
             $uniqueMember = Member::getByProperty($memberProperty->_id, $idValueMap[$id]);
             if (!empty($uniqueMember) && (empty($member->_id) || !empty($member->_id) && $uniqueMember->_id != $member->_id)) {
                 if ($memberProperty->name == 'tel') {
                     throw new InvalidParameterException([$id => \Yii::t('member', 'unique_tel_filed')]);
                 } else {
                     throw new InvalidParameterException([$id => \Yii::t('member', 'unique_filed')]);
                 }
             }
         }
         //validate email
         if ($memberProperty->name === Member::DEFAULT_PROPERTIES_EMAIL && !empty($idValueMap[$id]) && !StringUtil::isEmail($idValueMap[$id])) {
             throw new InvalidParameterException([$id => \Yii::t('member', 'email_format_error')]);
         }
     }
 }