Laravel 8 Eloquent whereHas 조건
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
Reference
이 문제에 관하여(Laravel 8 Eloquent whereHas 조건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/techsolutionstuff/laravel-8-eloquent-wherehas-condition-5d54텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)