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')]); } } }