【发布时间】:2015-06-16 05:43:02
【问题描述】:
我有两张桌子 - Categories 和 Posts。它们之间的关系是一对多的。即 - 一个类别有很多帖子。
我正在尝试获取所有 Categories 及其最新 3 个帖子
我试过这个:-
$with = array('posts' => function($query) {
$query->take(3);
$query->orderBy('created_at', 'desc');
$query->addSelect(array('name', 'excerpt','category_id'));
});
$categories = Category::with($with)->get();
但它似乎只对第一个类别有效,后续类别为空。
【问题讨论】:
-
尝试使用
toSql()而不是get()转储查询 -
@Luceos 这很奇怪 - 查询只显示为
select * from categories。 -
当你
$with = array('posts' => function($query) { $query->addSelect(array('name', 'excerpt','category_id'))->take(3)->orderBy('created_at', 'desc'); });时会发生什么 -
我都试过了。它仍然无法正常工作。结果完全一样。
-
当我删除
take(3)约束时。正在为所有类别加载所有帖子。然而,在限制条件下,只有第一个类别有 3 个帖子,其余所有类别都显示 pin 属性,但它是空的。
标签: php laravel orm eloquent laravel-5