为了账号安全,请及时绑定邮箱和手机立即绑定

多次切片采集

多次切片采集

PHP
临摹微笑 2021-09-18 10:52:00
我有一个包含一堆数据的集合。我正在尝试执行以下操作获取前18个结果并吐出使用循环获取特定位置的前 3 个结果并吐出每个结果这是我正在尝试做的示例代码:$data = DataChampion::query()    ->selectRaw('        static_champions.name as champion_name, static_champions.slug as champion_slug, static_champions.image as champion_image,        static_lanes.slug as lane_slug, static_tiers.slug as tier_slug, static_patches.slug as patch_slug,        ((sum(data_champions.wins) / sum(data_champions.matches)) * 100) as win_rate    ')    ->leftJoin('static_champions', 'static_champions.id', 'data_champions.static_champion_id')    ->leftJoin('static_lanes', 'static_lanes.id', 'data_champions.static_lane_id')    ->leftJoin('static_tiers', 'static_tiers.id', 'data_champions.static_tier_id')    ->leftJoin('static_patches', 'static_patches.id', 'data_champions.static_patch_id')    ->where('data_champions.static_patch_id', StaticPatch::orderByDesc('id')->first()->id)    ->groupBy('data_champions.static_champion_id')    ->orderByDesc('win_rate')    ->get();foreach ($data->splice(0, 18) as $data) {    echo $data->champion_name . '<br>';}foreach (['top', 'middle', 'bottom'] as $lane_slug) {    foreach ($data->where('lane_slug', $lane_slug)->splice(0, 3) as $data) {        echo $lane_slug . ' - ' . $data->champion_name . '<br>';    }}我不断收到错误:调用未定义的方法 Illuminate\Database\Eloquent\Builder::splice()当我删除foreach (['top', 'middle'...整个循环时,它似乎适用于前 18 个结果。如何从单个集合中获取我想要的数据,这样我就不必对相同的数据使用多个查询?
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

更改如下几行 - 在迭代集合(即 $data)时不能使用相同的变量名。


foreach ($data->splice(0, 18) as $val) {

    echo $val->champion_name . '<br>';

}


foreach (['top', 'middle', 'bottom'] as $lane_slug) {

    foreach ($data->where('lane_slug', $lane_slug)->splice(0, 3) as $val) {

        echo $lane_slug . ' - ' . $val->champion_name . '<br>';

    }

}


查看完整回答
反对 回复 2021-09-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

也许是因为你在那个 foreach 中添加了一个 where,集合变成了一个查询构建器,尝试在那个之后添加一个 ->get()


查看完整回答
反对 回复 2021-09-18
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信