Laravel 8 Eloquent whereHas 조건

이 기사에서는 laravel 8 eloquent whereHas() 조건을 볼 것입니다. laravel 8에서 wherehas() 조건에 대해 배우게 됩니다. laravel 8 설득력 있는 관계에서 wherehas() 조건을 사용하는 방법에 대한 간단한 예를 제공합니다. laravel 6, laravel 7, laravel 8 및 laravel 9 버전을 사용할 수도 있습니다.

laravel 8의 wherehas 조건에는 사용자 및 국가와 같은 두 개의 테이블이 필요하고 사용자 테이블에는 country_id를 추가해야 합니다.

그래서 보자, laravel 8 wherehas query 또는 laravel 8 wherehas relationship.

Example 1 : Laravel whereHas()



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

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



Read Also: How To Store Data In Database Using Node.js


Example 2 : Laravel has()



Laravel eloquent has() 메서드는 선택한 관계를 기반으로 선택 모델을 필터링하는 데 사용됩니다. 관계의 where 메서드와 유사하게 작동합니다.

use App\Models\User;

$users = User::has('country')->get();


쿼리를 추가로 사용자 지정하기 위해 연산자 및 개수 값을 지정할 수도 있습니다.

$posts = Post::has('comments', '>=', 3)->get();


Example : 3



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


앱/모델/Country.php

<?php

namespace App\Models;

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

class Country extends Model
{
    use HasFactory;
}


앱/Http/컨트롤러/UserController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index()
    {
        $name = 'india';
        $users = User::with('country')
                        ->whereHas('country', function ($query) use($name){
                            $query->where('name', 'like', '%'.$name.'%');
                        })
                        ->get()
                        ->toArray();  
    }
}



당신은 또한 좋아할 수 있습니다:

Read Also: Laravel whereIn and whereNotIn Query Example

좋은 웹페이지 즐겨찾기