Laravel 4 / Eloquent ORM:仅包含关系对象的对象

时间:2013-11-28 16:01:02

标签: orm laravel eloquent

我有产品的文章。一篇文章属于一个产品,所以我的产品类中有hasMany-Relationship,我的文章类中有belongsTo关系。

好的,现在我可以抓住某个产品的所有文章了。 但我需要的是以下内容:

我想只显示至少有一篇文章的产品。我是否必须使用db-query或者我可以使用雄辩的机制吗?

提前致谢。

问候

1 个答案:

答案 0 :(得分:1)

查看范围http://laravel.com/docs/eloquent#query-scopes,了解可重用的方法。这将允许您:

Products::hasArticles()->get();

如果您想在关系上执行此操作,请摘录自http://laravel.com/docs/eloquent#relationships

  

如果您需要为评论添加更多约束   检索后,您可以调用comments方法并继续链接   条件:

$comments = Post::find(1)->comments()->where('title', '=', 'foo')->first();

因此,不是调用Post::find(1)->comments而是使用完整方法comments()来获取查询,这将允许您向其添加自己的约束(甚至是上面提到的链接中的已定义范围)和通过first()get()等检索数据......