Запрос доктрины по номеру телефона в неизвестном формате - PullRequest
0 голосов
/ 26 декабря 2018

Пользователи хранят свои номера телефонов в разных форматах, например: +1234567890 +1 (234) 567 890 и т. Д. Я пытаюсь получить запись пользователя из БД по номеру телефона.Похоже, я должен использовать Doctrine beberlei / DoctrineExtensions, чтобы сделать запрос REGEX, но я не понимаю, как именно построить запрос.Код ниже не работает.

$query = $this->createQueryBuilder('user')
    ->where('REGEXP(user.phone, :regexp) = :phone')
    ->setParameter('phone', preg_replace("/[^0-9]/", "", $phone ))
    ->setParameter('regexp', "[0-9]");

1 Ответ

0 голосов
/ 28 декабря 2018

Я проделал расширенную работу с разбором телефонных номеров.Когда вы храните номер телефона, вы сохраняете его как текст.Если вы хотите найти номер телефона, используйте предложение LIKE.Также не забудьте заключить номер телефона в кавычки и знаки %%.Пример предложения WHERE:

WHERE phonenumber LIKE '%1234567890%' 

Так что очистите число, а затем используйте вышеуказанный метод для его поиска.

...