Метод whereLike
Метод whereLike применяется к запросу Eloquent или Query Builder для поиска записей, в которых значение колонки частично совпадает с указанной подстрокой. Он автоматически добавляет оператор LIKE в генерируемый SQL-запрос и позволяет выполнять поиск по шаблону, что удобно для реализации поисковых форм. Первым параметром передаётся имя колонки, вторым - искомая подстрока, а третьим, необязательным параметром, можно указать направление поиска (слева, справа или с обеих сторон).
Синтаксис
<?php
Model::whereLike($column, $search, $side = 'both');
?>
Параметр $side может принимать значения: 'both', 'left' или 'right'.
Пример поиска по части слова
Давайте найдём все статьи, в заголовке которых встречается слово 'article':
<?php
use AppModelsArticle;
$res = Article::whereLike('title', 'article')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"New article"
"Article about Laravel"
"Best article 2024"
Пример поиска по началу строки
Давайте найдём все статьи, заголовок которых начинается с фразы 'Laravel'. Для этого укажем третьим параметром 'right', что подстрока должна быть справа:
<?php
use AppModelsArticle;
$res = Article::whereLike('title', 'Laravel', 'right')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"Laravel basics"
"Laravel advanced features"
Пример поиска по концу строки
Найдём все статьи, которые заканчиваются на слово '2024'. Для этого укажем параметр 'left':
<?php
use AppModelsArticle;
$res = Article::whereLike('title', '2024', 'left')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"Laravel release 2024"
"Best practices 2024"
Пример использования нескольких условий
Метод whereLike можно комбинировать с другими методами. Например, найдём опубликованные статьи со словом 'php' в заголовке:
<?php
use AppModelsArticle;
$res = Article::where('status', 'published')
->whereLike('title', 'php')
->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"PHP framework guide"
"PHP programming tips"
Пример использования с Query Builder
Метод whereLike также доступен через фасаду DB для работы с таблицами напрямую:
<?php
use IlluminateSupportFacadesDB;
$res = DB::table('articles')
->whereLike('content', 'framework')
->get();
foreach ($res as $article) {
echo $article->content;
}
?>
Результат выполнения кода:
"Laravel is a PHP framework"
"PHP framework for web development"