Laravel where Like Query Example - Yudhy Network

Share on:

Yudhy Network - Laravel where like query example tutorial. Here, you will learn how to use laravel where like method for like search, multiple columns, array, & collection.

Laravel where like query example. Here you will learn how to use laravel whereLike() eloquent method in different ways with query builder and model.

In laravel, using whereLike() eloquent method, you can implement laravel where like search query, laravel where like multiple columns and laravel collection with where like.

Now, Take look at examples of laravel whereLike() eloquent methods, as following:

Example 1: Laravel where Like Query use with Model

You can use the LIKE MySQL keyword and % wildcard character with where clause.

The following example represents, how to use it:

public function index()
{
    $users = User::where('name','LIKE',"%{$search}%")->get();
  
    dd($users);                    
}

When you dump the above given whereNull query you will get the following SQL query:

SELECT * FROM `users` WHERE `name` LIKE '%search%';
Recommended:- Laravel Multiple Where Conditions Example

Example 2: Using macros with Like

To define a macro, you simply use the macro static method on the class you want to define the macro to. We need to define a macro for the Eloquent class, so we can extend it like this (in the boot method of the service provider):

Builder::macro('whereLike', function($column, $search) {
  return $this->where($column, 'LIKE', "%{$search}%");
});

Recommended Laravel Post

Create And Uses Of Laravel Macro

The way we can use this macro now is simple:

public function index()
{
  User::whereLike('username', $username)
   ->whereLike('email', $email)
   ->get();
}
Recommended:- Laravel whereNotBetween Query Example

Example 3: Laravel whereLike with multiple columns using macros

if you want to search with multiple columns then you have to extend this macro to support multiple columns.

See the following:

Builder::macro('whereLike', function($columns, $search) {
  $this->where(function($query) use ($columns, $search) {
    foreach(array_wrap($columns) as $column) {
      $query->orWhere($column, $search);
    }
  });

  return $this;
});

So now, if we pass a single column (using the array_wrap function we convert it to an array), and search that column, but if we add multiple columns in an array than we loop through all of them and search the search term in all of those columns. Everything is wrapped in an where query because we dont want the whereLike query to mess up any other where queries we can perform on the Eloquent model.

You can use this macro now like this:

public function index()
{
 User::whereLike(['username', 'email'], $search)
  ->where('enabled', true)
  ->get();
}

Recommended:- Laravel WhereHas Eloquent Example

Conclusion

In this laravel whereLike() query example tutorial, you have learned how to use laravel wherelike eloquent method with query builder, model and micros.

Please ask in the comments!

Suport : Cotekno.Com

comments powered by Disqus