我有两个查询,它们返回一个集合。但是,使用不同的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"
}
....
]
可能是什么原因?
答案 0 :(得分:1)
过滤集合不会更改原始键。您可以使用values()
重置它们:
$tasks = $man->tasks->where('worker_id', $worker_id)->values();