【发布时间】:2015-07-04 22:05:48
【问题描述】:
我想对 2 个模型进行分页:Trip 其中 hasMany PartialTrip。
Trip 模型:
public function PartialTrips()
{
return $this->hasMany('PartialTrip', 'main_trip_id');
}
棘手的部分是,在包含查询信息的对象中,我希望每个PartialTrip 都在拥有它的Trip 下。所以,例如:查询Trip -> 查询PartialTrip 和whereMainTripId = 当前Trip 的id -> paginate(5)。
这样,当我列出它们时,部分行程不会在数组对象的末尾,而是每个行程都直接在其父行程之后。
更新
我正在这样做(只是为了测试::with('PartialTrips') 是否有效:
$trips = Trip::with('PartialTrips')
->select('id', 'driver_user_id', 'route_from', 'route_to', 'start_date')
->get();
var_dump(count($trips));
它只返回我拥有的Trips 的数量(我计算了我在数据库中有多少trips 和partial trips)。
->toSql() 在该查询上产生以下结果:
"select 'id', 'driver_user_id', 'route_from', 'route_to', 'start_date' from 'trips'"
所以我猜::with('PartialTrips') 在这种情况下实际上不起作用...
【问题讨论】:
-
您已经在
Trip model中完成了Trip和PartialTrip之间的关系,对吧? -
Eager load可能会有所帮助,$trips = Trip::with('partialTrips')->paginate(5); -
@mininoz ,我更新了我的帖子。请你看看好吗?
标签: php mysql laravel laravel-4 pagination