使用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了解更多