我有三张桌子
物品表 id title body categories_id user_id 分类表 id category_name 用户表 id user_name user_type 我想显示其类别名称而不是category_id和user_name而不是user_id的文章,我尝试像这些查询一样工作!
$articles =DB::table('articles') ->join('categories', 'articles.id', '=', 'categories.id') ->join('users', 'users.id', '=', 'articles.user_id') ->select('articles.id','articles.title','articles.body','users.username', 'category.name') ->get(); 但是我想用口才来做。拜托,我该怎么办?
使用Eloquent,它非常容易检索关系数据。在Laravel 5中使用您的场景检查以下示例。
我们有三种模型:
1)文章(属于用户和类别)
2)类别(有很多文章)
3)用户(有很多文章)
1)Article.php
belongsTo('App\Models\User'); } public function category() { return $this->belongsTo('App\Models\Category'); } } 2)Category.php hasMany('App\Models\Article'); } } 3)User.php 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了解更多来源:stack overflow版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。