我有三张桌子
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
<?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了解更多
问题内容: 我正在尝试检索两组信息(一个查询中该图的红色和蓝色部分)。 我以为我可以使用下面所述的sql来做到这一点,但是当TableC没有记录时,它什么也不会返回。如果TableC没有记录,我仍然希望该查询向我返回BLUE区域指示的结果。 从表A中选择A. * 加入TableB B ON(A.id = B.a_id) 联接表C C ON(A.id = C.a_id) 感谢任何指针,以向我返回红色
我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?
我希望避免一直使用表名,而使用别名。
我试图通过使用Laravel Eloquent获得数据,但我无法访问。无论何时尝试,它都显示尝试获取非对象的属性“name” 我有两个模型。类别和文章。类别有许多文章。以下是模型: 类别模型 文章模式 物品管理员 查看刀片(admin.article.pending) 在这里的刀片,我不能访问类别通过雄辩的属于功能,我没有得到背后的原因得到的消息: ErrorException(E_ERROR)试
我将有一个充满涉及其他表(关系)的信息的表。此表中的大多数信息将只有引用相关表的ID。如果我使用“产品”作为此表的示例,对于某些列来说可能是这样的: 我想把这个“产品”表倒出到一个列表中。当我将其转储(关系)时,我需要查找这些列中的所有项。我知道如何做物品和物品,但是我不确定如果我有一个“产品”模型,我怎么能用雄辩的模型一次性做到这一点?我应该让产品表只是一个数据透视表吗?我可以用雄辩的模型做它,
我在使用laravel雄辩的ORM时遇到了一个问题。 基本上,我正在获取与用户相关的帖子,以及他的评论,但是,我正在尝试集成某种分页(我一次只想取5个帖子)。 而使用跳过方法,我总是得到以下laravel错误: 方法skip不存在。 这是我实际使用的代码片段。 有人能给我任何帮助吗? 帐户模型检索与用户相关的帖子模型(关系),但是,我想一次只收到5个帖子,用于基于ajax的请求。