С 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