繁体   English   中英

如何从关系中检索数据?

[英]How to retrieve data from relation?

邮政模型

class Post extends Model
{


    public function comments()
    {
        return $this->hasMany('App\Comment');
    }

    public function users()
    {
        return $this->belongsTo('App\User');
    }

评论模型

class Comment extends Model
    {

    public function posts()
    {
        return $this->belongsTo('App\Post');
    }


   }  

用户模型

class User extends Model
{


    public function posts()
    {
        return $this->hasMany('App\Post');
    }

现在我的问题是我如何才能访问属于带有评论用户名的帖子的所有评论

我认为使用hasmanythrough关系可以轻松解决您的问题(请参阅http://laravel.com/docs/5.1/eloquent-relationships )。

尝试此操作,它将返回所有带有评论的帖子,以及所选用户的带有作者的帖子。

$data = User::with('post.comment') 
        -> with('post.author') 
        -> Where('id',$user_id) 
        -> first();

这将获取作者的帖子,并向发表评论的用户发表评论。 假设您的模型是这样建立的,

Post belongs to an Author,   
Author has many Post,  
Post has many Comment  
Comment belongs to a Post  
Comment belongs to a User  
User has many Comment.   

$posts = Post::with('author') -> with('comment.user') -> get(); 

您可以查询评论关系,如下所示:

$post_id = 7;
$username = 'username';

$comments = Comment::where('post_id', $post_id)->whereHas('user', function($q) use($username) {
    $q->where('username', $username);
})->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM