Ответ 1
С Eloquent очень легко получить реляционную проверку данных в следующем примере с вашим senario в 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();
и вы можете использовать это как
//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();
вы можете узнать больше на http://laravel.com/docs/5.0/eloquent