【发布时间】:2019-11-08 17:08:04
【问题描述】:
我正在尝试使用 sum() 通过从 $collection 中的每个用户获取“持续时间”来返回总计
结构是
USER > CONTRACT_RESULTS > DAYS > DATE > ACTIVITIES > ACTIVITY
我想查询活动的“类型”并拉回与该活动关联的持续时间。
当它的嵌套少得多时,我让它工作了:
$collection->whereIn('activity',['off'])->sum('duration');
但我现在不知所措,因为它们是如此嵌套,并且数组的名称是动态的
下面是 $collection 中 1 个用户的结构示例:
array:13 [▼
"user_id" => 52
"contract_results" => array:2 [▼
"2019-10-21 - 2019-10-31" => array:10 [▼
"hours_a_week" => "20"
"days" => array:1 [▼
"2019-10-21" => array:2 [▼
"bank_holiday" => "no"
"activities" => array:2 [▼
"10:00 - 22:00" => array:5 [▼
"type" => "driving"
"from" => "10:00"
"to" => "22:00"
"duration" => 720
"night_minutes" => 60
]
"22:00 - 00:00" => array:5 [▼
"type" => "driving"
"from" => "22:00"
"to" => "00:00"
"duration" => 120
"night_minutes" => 120
]
]
]
]
]
"2019-11-01 - 2019-11-10" => array:10 [▼
"hours_a_week" => "10"
"days" => array:1 [▼
"2019-11-01" => array:2 [▼
"bank_holiday" => "yes"
"activities" => array:1 [▼
"10:00 - 22:00" => array:5 [▼
"type" => "availability"
"from" => "10:00"
"to" => "22:00"
"duration" => 720
"night_minutes" => 60
]
]
]
]
]
]
]
我是新手,非常感谢您的意见!
【问题讨论】:
-
什么是
activity?我在你的收藏中没有看到activity。 -
活动是在“活动”数组下名称设置为时间的数组 - 示例是“10:00 - 22:00”,其中每个是类型、从、到、持续时间、夜间分钟
-
对不起,我不明白。看看你的
->whereIn('activity', ['off'])。我在你的收藏中没有看到activity键。 -
在我有一个更简单的数组之前,有一个名为“activity”的数组,现在我有一个更复杂的嵌套数组,还有一个名为“activities”的数组,在这么多动态名称的数组中像“10:00 - 22:00”这些现在是我需要查询的新“活动”。如果它是一个循环,它会像: $duration_total = '';对于每个“天”作为一天 - 对于每个活动作为活动 $duration_total .= 持续时间