Код |
---|
public function controlPhone() { if(!empty($_REQUEST['phone'])) { $phone = \Ycaweb\Tools::clearText($_REQUEST['phone']); // в $phone из 7(111)111-11-11 станет 71111111111 $result['phone'] = $phone; $result['result'] = $this->_controlUser($phone, 'WORK_PHONE'); } else { $result['result'] = false; } $this->moduleResult($result); } ** * проверяет есть ли пользователь по нужному нам полю * @param $data - значение * @param $field - поле пользователя * @return bool - true есть совпадения */ private function _controlUser($data, $field) { $temp = CUser::GetList(($by = 'ID'), ($order = 'asc'), array($field => $data)); if ($users = $temp->Fetch()) { return true; } else { return false; } } |
Есть пользователь с номером телефона 71111111111
при проверке если передать 7111 _controlUser('7111', 'WORK_PHONE'); выдаст что такой пользователь существует, если передать вторым параметром '=WORK_PHONE' то вообще пользователи есть всегда.
То есть не получается получить точное соотвествие по этим полям. по полю EMAIL передав второй параметр '=EMAIL' ищется точное соответствие, по дополнительным полям 'UF_CARD' в качестве второго параметра так же жесткое соотсветсвие,а по полям PERSONAL_PHONE или WORK_PHONE создается впечатление ищется есть ли вхождение или нет, а не точное соотвествие.
Подскажите в чем я ошибся и что нужно передать в CUser::GetList, чтобы она по полям PERSONAL_PHONE или WORK_PHONE искала точное соответствие