我想使用Eloquent模型使用Post_Tag表从post_id中找到用户名。这是表格。
用户表
user_id(pk)
username
发布表
post_id(pk)
user_id(fk)
Post_Tag表
post_id(fk)
Tag_id(fk)
如何使用Post_Tag表从User表中获取用户名。这是我尝试过的:
class Post extends Eloquent {
public function user() {
return $this->belongsTo('App\User');
}
}
class PostTag extends Eloquent {
public function post() {
return $this->hasMany('App\Post');
}
}
$posts = PostTag::with('post')->where('tag_id','=','20')->get();
一个标签属于多个帖子,每个帖子都属于所有者/用户。提前谢谢。
答案 0 :(得分:1)
如果你的关系正常,那就可以了:
PostTag::find(20)->post()->first()
->user()->first()->username;
你说一个标签属于很多帖子,你如何选择你想要获得用户用户名的帖子中的哪一个?
您是否希望获得所有帖子中包含PostTag帖子的用户?
编辑:试试这个:
PostTag::find(20)->with(['post', 'post.user'])->get();
在artisan tinker或dd
中运行此结果,以便您可以看到返回的内容,我认为这可以解决您的问题。请注意,这可能会返回大量数据,您可以使用take
代替get
来限制结果。