> 데이터 베이스 > MySQL 튜토리얼 > Eloquent Relationships를 사용하여 Laravel에서 세 개의 테이블을 조인하는 방법은 무엇입니까?

Eloquent Relationships를 사용하여 Laravel에서 세 개의 테이블을 조인하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-14 16:48:02
원래의
420명이 탐색했습니다.

How to Join Three Tables in Laravel Using Eloquent Relationships?

Laravel Eloquent 모델을 사용하여 세 개의 테이블 결합

소개

Laravel에서는 Eloquent 모델을 사용하여 관계형 데이터 검색이 단순화됩니다. 이 기사에서는 Eloquent를 사용하여 Articles, Category 및 Users 테이블에서 데이터를 검색하는 세 개의 테이블을 조인하는 방법을 보여줍니다.

데이터베이스 스키마

다음 데이터베이스 스키마를 고려하세요:

Articles Table Categories Table User Table
id id id
title category_name user_name
body
user_type
categories_id

user_id

목표

category_id 대신 해당 카테고리 이름, user_id 대신 사용자 이름과 함께 기사를 검색하는 것이 목표입니다.

Eloquent Implement

데이터베이스 스키마를 기반으로 한 모델 간의 관계:

Article.php:

namespace App\Models;

use Eloquent;

class Article extends Eloquent
{
    protected $table = 'articles';

    public function user()
    {
        return $this->belongsTo('App\Models\User');
    }

    public function category()
    {
        return $this->belongsTo('App\Models\Category');
    }
}
로그인 후 복사

Category.php:

namespace App\Models;

use Eloquent;

class Category extends Eloquent
{
    protected $table = "categories";

    public function articles()
    {
        return $this->hasMany('App\Models\Article');
    }
}
로그인 후 복사

User.php:

namespace App\Models;

use Eloquent;

class User extends Eloquent
{
    protected $table = 'users';

    public function articles()
    {
        return $this->hasMany('App\Models\Article');
    }
}
로그인 후 복사

데이터 검색

관련 데이터가 있는 기사 검색:

$articles = \App\Models\Article::with(['user','category'])->get();
로그인 후 복사

사용

다음과 같이 관련 데이터에 액세스합니다.

// Retrieve user name
$article->user->user_name

// Retrieve category name
$article->category->category_name
로그인 후 복사

특정 관계를 사용한 검색

카테고리 내에서 또는 특정 사용자의 기사를 검색하려면:

$categories = \App\Models\Category::with('articles')->get();
$users = \App\Models\Category::with('users')->get();
로그인 후 복사

결론

Laravel의 Eloquent 모델은 관계형 데이터 검색 작업을 크게 단순화합니다. 모델 간의 관계를 이해하고 이를 코드에 설정하면 필요한 데이터에 쉽게 액세스하고 보다 복잡한 쿼리를 효율적으로 수행할 수 있습니다.

위 내용은 Eloquent Relationships를 사용하여 Laravel에서 세 개의 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿