获取指定栏目下子级栏目的软件信息
# 请忽略变量名
# $xiesi_class_id 这个参数可以不用传 不传的话请注释 empty($xiesi_class_id) ?: array_collapse($son_class, $xiesi_class_id);
/**
* @param int $class_id
* @return array
* 获取对应栏目下 sonclass 信息
*
* 业务场景:
* 我需要获取指定栏目下面的sonclass下面的按照指定order(指定条件)的关联(关联软件)信息
* 代码分析:
* 1, 获取指定栏目下的sonclassid
* 2, 获取sonclassid 对应的软件信息
* 3, 设置信息的where条件(动态的) 比如:动态的指定order
*/
protected function getClassInfos(array $class_id, array $xiesi_class_id = null, array $order_by = null) {
$infos = function ($class_id, $xiesi_class_id, $order_by) {
$son_class = explode('|', trim(Comulon::whereIn('classid', $class_id)->value('sonclass'), '|'));
empty($xiesi_class_id) ?: array_collapse($son_class, $xiesi_class_id);
foreach ($son_class as $son_class_id) {
$class_info[] = Comulon::where('classid', $son_class_id)->with(['softInfos' => function ($query) use ($order_by) {
// 这一点期待Laravel可以传入数组
foreach($order_by as $sort) {
$query->orderByDesc($sort);
}
$query->limit(4);
}])->first()->toArray();
}
return $class_info;
};
return $infos($class_id, $xiesi_class_id, $order_by);
}
No Comments