1。用户
1. id
2.姓名
2。类
1. id
2. category_name
3. user_id
第3。讯息
1. id
2. post_title
3. category_id
所以现在我想在我看来显示数据 例如:post_title-> category_name-> user_name
如何处理模型中的laravel查询关系
答案 0 :(得分:1)
定义关系
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);
}
}
答案 1 :(得分:0)
$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();
检查拼写表名称和列 但如果数据中有重复,则无法正常工作