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 대신 사용자 이름과 함께 기사를 검색하는 것이 목표입니다.
데이터베이스 스키마를 기반으로 한 모델 간의 관계:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!