获取指定栏目下子级栏目的软件信息


# 请忽略变量名
# $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);
    }

点赞 取消点赞 收藏 取消收藏

<< 上一篇: 比特币与山寨币的数字货币交易库CCXT(CryptoCurrency eXchange)

>> 下一篇: EOS区块链PHP开发包