2014-03-07 256 views
0

如果我想找到帖子有评论,这就像雄辩在Laravel

Post::with('comments')->has('comments'); 

就我而言,我有一个意见表,只为每个评论的一份答复,因此,结构

意见表

id 
name 
comment_id 

评价模型

public function reply() { 
    return $this->hasOne('comment', 'comment_id'); 
} 

如果我想找个话题

Comment::whereNull('comment_id'); 

但是,如果我想找出评论已回复

Comment::whereNull('comment_id')->has('reply'); 

这将是空的,如何找出注解的,而不是有通过此结构回复

回答

0

您错过了您的关系中的return

public function reply() { 
    return $this->hasOne('Comment'); 
} 

你也可以找到你需要定义外键:

public function reply() { 
    return $this->hasOne('Comment', 'comment_id'); 
} 

这里是供您参考文档:http://laravel.com/docs/eloquent#one-to-one

编辑:

你会发现你需要使用hasMany而不是hasOne

public function reply() { 
    return $this->hasMany('Comment', 'comment_id'); 
} 
+0

对不起,这是错字,我已经做了,但仍然无法使用 – Chan

+0

您可能需要尝试带有外键的'hasMany'。请参阅编辑。 –