Laravel 9 Eloquent WHERE Like Query 예제 튜토리얼
laravel에서는 whereLike() eloquent 메소드를 사용하여 laravel where like search query, laravel where like multiple columns 및 laravel collection with where like를 구현할 수 있습니다.
예 1: Like 쿼리가 Eloquent 모델과 함께 사용되는 Laravel
LIKE MySQL 키워드 및 % 와일드카드 문자를 where 절과 함께 사용할 수 있습니다.
다음 예는 사용 방법을 나타냅니다.
public function index(){
$users = User::where('name','LIKE',"%{$search}%")->get();
return $users;
}
위의 주어진 whereNull 쿼리를 덤프하면 다음 SQL 쿼리가 표시됩니다.
SELECT * FROM `users` WHERE `name` LIKE '%search%';
예 2: Like와 함께 매크로 사용
매크로를 정의하려면 매크로를 정의하려는 클래스에서 매크로 정적 메서드를 사용하기만 하면 됩니다. Eloquent 클래스에 대한 매크로를 정의해야 하므로 다음과 같이 확장할 수 있습니다(서비스 제공자의 boot 메소드에서).
Builder::macro('whereLike', function($column, $search) {
return $this->where($column, 'LIKE', "%{$search}%");
});
이제 이 매크로를 사용하는 방법은 간단합니다.
public function index(){
return User::whereLike('username', $username)
->whereLike('email', $email)
->get();
}
예 3: 매크로를 사용하는 여러 열이 있는 Laravel whereLike
여러 열로 검색하려면 이 매크로를 확장하여 여러 열을 지원해야 합니다.
Builder::macro('whereLike', function($columns, $search) {
$this->where(function($query) use ($columns, $search) {
foreach(\Arr::wrap($columns) as $column) {
$query->orWhere($column, $search);
}
});
return $this;
});
이제 단일 열을 전달하고(array_wrap 함수를 사용하여 배열로 변환) 해당 열을 검색하지만 배열에 여러 열을 추가하면 모든 열을 반복하고 검색어를 모두 검색합니다. 그 열의. whereLike 쿼리가 Eloquent 모델에서 수행할 수 있는 다른 where 쿼리를 망치는 것을 원하지 않기 때문에 모든 것이 where 쿼리에 래핑됩니다.
이제 이 매크로를 다음과 같이 사용할 수 있습니다.
public function index(){
return User::whereLike(['username', 'email'], $search)->get();
}
이 기사를 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Laravel 9 Eloquent WHERE Like Query 예제 튜토리얼), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sureshramani/laravel-9-eloquent-where-like-query-example-tutorial-3l0b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)