【发布时间】:2018-07-11 07:59:44
【问题描述】:
1.用户
1. 身份证
2.名字
2。类别
1. 身份证
2. 类别名称
3.user_id
3。帖子
1. 身份证
2. post_title
3. category_id
所以现在我想在我的视图中显示数据
比如:post_title->category_name->user_name
模型中的laravel查询关系怎么做
【问题讨论】:
标签: laravel laravel-5.5
1.用户
1. 身份证
2.名字
2。类别
1. 身份证
2. 类别名称
3.user_id
3。帖子
1. 身份证
2. post_title
3. category_id
所以现在我想在我的视图中显示数据
比如:post_title->category_name->user_name
模型中的laravel查询关系怎么做
【问题讨论】:
标签: laravel laravel-5.5
定义关系
class Post extends Model
{
return $this->blongsTo(Category::class);
}
class Category extends Model
{
return $this->blongsTo(User::class);
}
现在
$post = with('category.user')->whereId(1)->first(); //1 is my guess
$post->category()->user->name();
虽然您可以像这样访问用户的帖子,但它似乎也是has-many-through 关系
$user->posts;
为此,您需要定义:
class User extends Model
{
/**
* Get all of the posts for the user.
*/
public function posts()
{
return $this->hasManyThrough(Post:class, Category::class);
}
}
【讨论】:
$post = Post::with(............)->get->(); So now result is post_title, category_name, user_name ?
eager loading $post->category->name ` 或 $post->category->user->name
$post = with('category.user')->whereSlug('some-slug')->first();
$Query=DB::select('select posts.post_title,categories.category_name,
users.name from posts,categories,users where users.id=categories.user_id and
categories.id=posts.category_id');
如果你不使用 DB:: 你可以使用你的模型
$Query = Users::select('users.name', 'posts.post_title', 'categories.category_name')
->join('categories', function ($join) {
$join->on('categories.user_id', '=', 'users.id')
->join('categories.id', '=', 'posts.category_id');
})
->get();
检查拼写表名和列 但是如果数据中有重复,它将无法正常工作
【讨论】:
DB