关于数据集Collection类的修正

浏览:154 发布日期:2020/03/25
5.0.0 - 严重 - 已处理
版本6.0.2
源码位置:vendor\topthink\think-helper\src\Collection.php
问题所在: 512行 order()方法
修正问题:在查询后的结果集中,如果存在数组值为数字类型时,会造成strcmp()函数无法通过参数类型检测。
修正方法:改用组合比较符
修正后的效果:可以兼容任何类型数据的输入

修正后的代码:    public function order(string $field, string $order = null)
    {
        return $this->sort(function ($a, $b) use ($field, $order) {
            $fieldA = $a[$field] ?? null;
            $fieldB = $b[$field] ?? null;
            return 'desc' == strtolower($order) ? $fieldB <=> $fieldA : $fieldA <=> $fieldB;   //  修正行在这里
        });
    }
评论(
后面还有条评论,点击查看>>