Поиск данных без учета регистра — обычное требование во многих приложениях. В этой статье мы рассмотрим различные методы выполнения поиска без учета регистра с использованием Eloquent ORM от Laravel. Мы предоставим примеры кода для каждого метода, которые помогут вам легко реализовать поиск без учета регистра в ваших проектах Laravel.
Метод 1: использование метода “where” с “ILIKE”
$keyword = 'example';
$results = Model::where('column', 'ILIKE', '%' . $keyword . '%')->get();
Метод 2: использование методаwhereRaw с ILIKE
$keyword = 'example';
$results = Model::whereRaw('LOWER(column) LIKE ?', ['%' . strtolower($keyword) . '%'])->get();
Метод 3: использование методаwhereRaw с REGEXP
$keyword = 'example';
$results = Model::whereRaw('column REGEXP ?', ['(?i)' . $keyword])->get();
Метод 4: использование метода «where» с «LIKE» и «LOWER»
$keyword = 'example';
$results = Model::whereRaw('LOWER(column) LIKE ?', ['%' . strtolower($keyword) . '%'])->get();
Метод 5. Использование метода “where” с замыканием
$keyword = 'example';
$results = Model::where(function ($query) use ($keyword) {
$query->where('column', 'LIKE', '%' . $keyword . '%')
->orWhere('column', 'LIKE', '%' . ucfirst($keyword) . '%');
})->get();
Метод 6: использование метода «where» с «COLLATE»
$keyword = 'example';
$results = Model::where('column', 'LIKE', '%' . $keyword . '%')->orWhere('column', 'LIKE', '%' . $keyword . '% COLLATE utf8_general_ci')->get();
Выполнение поиска без учета регистра в Eloquent ORM Laravel имеет решающее значение для обеспечения бесперебойного взаимодействия с пользователем. В этой статье мы рассмотрели шесть различных методов выполнения поиска без учета регистра, используя различные методы, такие как «ILIKE», «REGEXP», «LOWER», «LIKE» и «COLLATE». Вы можете выбрать метод, который лучше всего соответствует требованиям вашего проекта, и реализовать его, чтобы без особых усилий обеспечить поиск без учета регистра в ваших приложениях Laravel.
Помните: понимание этих методов позволит вам создать мощные функции поиска, сохраняя при этом удобство использования. Приятного кодирования!