Laravel 8 Eloquent 또는 WhereHas 조건

이 기사에서는 laravel 8 eloquent orWhereHas() 조건을 볼 것입니다. 이전 예제에서는 laravel 8 whereHas() 조건에 대해 알아봅니다. 그래서 laravel eloquent 관계와 함께 orWherehas() 조건을 사용하는 방법에 대한 간단한 예를 제공합니다. laravel 6, laravel 7, laravel 8 laravel 9와 함께 사용할 수도 있습니다.

laravel 8의 orWhereHas() 조건에 대해 사용자, 국가 및 주와 같은 세 개의 테이블을 사용하고 사용자 테이블에 country_id 및 state_id 관계를 추가합니다. 또한 laravel 8에서 orWhereHas() 조건과 함께 whereHas()를 사용합니다.

따라서 laravel 8 orWhereHas() 관계 또는 laravel 8의 orwherehas 조건을 봅시다.

Example 1: Laravel orWhereHas()



라라벨의 설득력 있는 whereHas() 메소드는 기본적으로 has()와 동일하게 작동하지만 관련 모델이 확인할 추가 필터를 지정할 수 있습니다.

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();
}



Read More: How To Push Array Element In Node.js


예: 2

앱/모델/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);
    }
}


앱/모델/Country.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Country extends Model
{
    use HasFactory;
}


앱/모델/State.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class State extends Model
{
    use HasFactory;
}



Read More: Laravel 8 Eloquent whereHas Condition


앱/Http/컨트롤러/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();  
    }
}

좋은 웹페이지 즐겨찾기