thinkphp5 关联预加载with中加入排序功能

$products = self::with(['properties','imgs.imgUrl'])->find($id);
上面是一条关联预加载操作,但后成的数据排序是按数据库中的,并不是按我们想要的
thinkphp5 关联预加载with中加入排序功能

但如果在上面直接加上order式的链式操作,是无效的,所以必须对上面的链接进行修改

上面语句修改

上面的关联预加载操作我们还可以改成
$products = self::with(['properties'])
->with(['imgs.imgUrl'])
->find($id);
也就是可以进行多条with操作,所以我们将其中一起with语句进行闭包扩展

进行排序功能

$products = self::with(['properties'])
            ->with([
                'imgs' => function($query){
                    $query->with('imgUrl')
                    ->order('order','asc');
                }
            ])
            ->find($id);
上面先对imgs进行了一次关联,紧接着再在闭包中对imgUrl进行了关联,并进行了排序操作。
进行排序后,我们再输出看看
thinkphp5 关联预加载with中加入排序功能

评论

大侠名号:   验证暗号: 点击我更换图片

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND