У меня есть столбец phone number в таблице users. Номера телефонов в разных форматах:
123-456-7890
(123) 456 7890
так далее...
Я хотел бы сравнить, удалив лишние символы и получив результаты.
Вот запрос mysql:
SELECT * FROM users WHERE REPLACE(REPLACE(REPLACE(`phonenumber`, '-', ''), '(', ''), ')', '') = '1234567890'
Как я могу это сделать в Laravel Eloquent?
Я знаю, что лучшим вариантом было бы принудительное форматирование столбца БД. Мне интересно, сможем ли мы сделать это с помощью Laravel Eloquent.






Он не будет независимым от базы данных, но:
$query->whereRaw('REPLACE(REPLACE(REPLACE(`phonenumber`, '-', ''), '(', ''), ')', '') = ?', [$phoneNumber]);
См. Необработанные методы на https://laravel.com/docs/5.7/queries#raw-expressions
Лучшим подходом было бы удалить эти символы перед вставкой чисел в базу данных.