Rez*_*azi 1 php collections slice laravel
所以我有这个模型,它将命名为 Clients Clients
我选择这种方式来获取按城市分组的电话号码
return Clients::select('name','phone','city')->selectSub('lpad(phone,1,'0'))->where('active',1)->groupBy('city')->paginate(10);
Run Code Online (Sandbox Code Playgroud)
我想将集合切片为来自某个客户端的子集合,换句话说,如果我有以下输出:
我怎样才能继续切片这个集合以获得最后 2 个项目(最后 4 个项目,6 个项目......换句话说,来自我选择的条目)我知道 Laravel 有一个用于集合的切片方法,但如何做到这一点动态的?谢谢你。
$records = Clients::select('name','phone','city')->selectSub('lpad(phone,1,'0'))->where('active',1)->groupBy('city')->paginate(10);
Run Code Online (Sandbox Code Playgroud)
假设 $name = "Jane"
$value = collect($records)->filter(function($value) use ($name) {
return $value->name === $name;
})->keys()->first();
Run Code Online (Sandbox Code Playgroud)
这里 $value 将保存 Jane 的索引。
现在您可以通过以下方式实现切片
$records = collect($records)->slice($value, 2)->all();
Run Code Online (Sandbox Code Playgroud)
但是有一个副作用,如果找不到名称,您将获得 $value 为 null。在处理切片之前检查 $value 是否为空。
| 归档时间: |
|
| 查看次数: |
6725 次 |
| 最近记录: |