Laravel 5.6:口才+ DB :: Builder查询数组索引

时间:2018-08-17 10:40:26

标签: php laravel-5 eloquent

我有两个查询,它们返回一个集合。但是,使用不同的ID可以获得不同的数组索引。

$worker = Worker::find($worker_id);
$man = $worker->managers->where('id', $manager_id)->first();
$tasks = $man->tasks->where('worker_id', $worker_id);
dd($tasks->toArray());

$worker_id为1运行此查询时,我得到一个数字索引从0开始的数组:

[
 {
   "id": 1,
   "task_name": "Cleaning"
 },
 ....
]

但是在$worker_id为2的情况下,我得到了一个数组,该数组具有从“ 9”开始的命名(字符串)索引:

[
 "9": {
   "id": 18,
   "task_name": "Staff reorientation"
 },
 "10": {
   "id": 19,
   "task_name": "Schedule"
 }
 ....
]

可能是什么原因?

1 个答案:

答案 0 :(得分:1)

过滤集合不会更改原始键。您可以使用values()重置它们:

$tasks = $man->tasks->where('worker_id', $worker_id)->values();