Laravel 8 Eloquent orWhereHas Condition

Websolutionstuff | Oct-15-2021 | Categories : Laravel

In this example we will see laravel 8 eloquent orWhereHas() condition. In previous example we will learn about laravel 8 whereHas() condition. So, I will give you simple example of how to use orWherehas() condition with laravel eloquent relationship. you can also use with laravel 6, laravel 7 and laravel 8 version.

For orWhereHas() condition in laravel 8 we are using three tables like userscountry and state and in users tabel add country_id and state_id relationship. And also in this use whereHas() with orWhereHas() condition in laravel 8.

So, let's see laravel 8 orWhereHas() realationship.

Example 1 : Laravel orWhereHas()

Laravel eloquent whereHas() method works basically the same as has() but it just allows you to specify additional filters for the related model to check. 

public function index()
{
    $name = 'California';
    $users = User::with('country','state')
                    ->whereHas('country', function ($query) use($name){
                        $query->where('name', 'like', '%'.$name.'%');
                    })
                    ->orWhereHas('state', function ($query) use($name){
                        $query->where('name', 'like', '%'.$name.'%');
                    })
                    ->get()
                    ->toArray();
}

 

 

Example : 2

app/Models/User.php

<?php
  
namespace App\Models;
  
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
  
class User extends Authenticatable
{
    
    protected $fillable = [
        'name',
        'email',
        'password',
    ]; 
  
    public function country()
    {
        return $this->belongsTo(Country::class);
    }
    
    public function state()
    {
        return $this->belongsTo(State::class);
    }
}

app/Models/Country.php

<?php
  
namespace App\Models;
  
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
  
class Country extends Model
{
    use HasFactory;
}

app/Models/State.php

<?php
  
namespace App\Models;
  
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
  
class State extends Model
{
    use HasFactory;
}

 

 

app/Http/Controllers/UserController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\User;
  
class UserController extends Controller
{
    public function index()
    {
        $name = 'California';
        $users = User::with('country','state')
                        ->whereHas('country', function ($query) use($name){
                            $query->where('name', 'like', '%'.$name.'%');
                        })
                        ->orWhereHas('state', function ($query) use($name){
                            $query->where('name', 'like', '%'.$name.'%');
                        })
                        ->get()
                        ->toArray();  
    }
}

You might also like : 

Recommended Post
Featured Post
How To Change Month Name In jQuery Datepicker
How To Change Month Name In jQ...

In this article, we will see how to change the month name in jquery datepicker. In the date picker, we can change t...

Read More

Jul-01-2022

Laravel 9 Subquery In Where Condition
Laravel 9 Subquery In Where Co...

In this article, we will see the laravel 9 subquery in where condition. You can learn how to create subquery in laravel...

Read More

Oct-11-2022

How To Setup 404 Page In Angular 12
How To Setup 404 Page In Angul...

In this article, we will see how to set up a 404 page in angular 12.  To set up a 404 page in the angular...

Read More

May-11-2022

How To Create Dependent Dropdown In Laravel
How To Create Dependent Dropdo...

In this article, we will see how to create a dependent dropdown list in laravel using ajax. Many times we have requ...

Read More

Jul-05-2020