关系,雄辩和联合

时间:2014-09-29 19:10:27

标签: laravel laravel-4 eloquent

假设我有两张桌子:

Pages [id,parent_id,content] 评论[id,page_id,content]

当我正在查看某个页面时,我想显示该页面的所有评论以及将该页面作为父页面的页面的评论。

class Comment extends Eloquent
{
    protected $table = "comments";

    public function page()
    {
        return $this->belongsTo('Page','page_id','id');
    }
}

class Page extends Eloquent
{
    protected $table = "pages";

    public function comments()
    {
        return $this->has_many('Comment');
    }
}

$comments = new Comment();
$comments= $comments->where('page_id',$id)->with('page')->get();

我需要当前页面的注释,将当前页面作为父页面的页面,我希望页面表格中的所有数据都带有注释,这样我就可以打印出每个注释旁边的page_id / title。

1 个答案:

答案 0 :(得分:0)

我还没有对此进行过测试,但是理论上Laravel应该像这样解析嵌套关系:

Page::where('page_id',$id)->with('comments','parent.comments')->get();

假设你有一个父母'页面模型上的关系。

public function parent()
{
    return $this->hasOne('Page','parent_id');
}