Eloquent를 사용하면 관계형 데이터를 매우 쉽게 검색 할 수 있습니다. Laravel 5의 시나리오로 다음 예제를 확인하십시오.
세 가지 모델이 있습니다.
1) 기사 (사용자 및 카테고리에 속)
2) 카테고리 (기사가 많음)
3) 사용자 (문서가 많음)
1) Article.php
<?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');
}
}
2) Category.php
<?php
namespace App\Models;
use Eloquent;
class Category extends Eloquent
{
protected $table = "categories";
public function articles()
{
return $this->hasMany('App\Models\Article');
}
}
3) User.php
<?php
namespace App\Models;
use Eloquent;
class User extends Eloquent
{
protected $table = 'users';
public function articles()
{
return $this->hasMany('App\Models\Article');
}
}
모델에서 데이터베이스 관계 및 설정을 이해해야합니다. 사용자는 많은 기사를 가지고 있습니다. 카테고리에는 많은 기사가 있습니다. 기사는 사용자 및 카테고리에 속합니다. Laravel에서 관계를 설정하면 관련 정보를 쉽게 검색 할 수 있습니다.
예를 들어, 사용자 및 카테고리를 사용하여 기사를 검색하려면 다음을 작성해야합니다.
$article = \App\Models\Article::with(['user','category'])->first();
다음과 같이 사용할 수 있습니다.
$article->user->user_name
$article->category->category_name
다른 경우에는 카테고리 내의 모든 기사를 검색하거나 특정 사용자의 기사를 모두 검색해야 할 수 있습니다. 다음과 같이 작성할 수 있습니다.
$categories = \App\Models\Category::with('articles')->get();
$users = \App\Models\Category::with('users')->get();
http://laravel.com/docs/5.0/eloquent 에서 자세히 알아볼 수 있습니다.