THINKPHP6 collect的使用,这么多年竟然没咋用过~~~

<?php

namespace app\controller;

use think\facade\Db;
use think\Collection;

class UserController
{
    public function index()
    {
        // 1. 查询数据库获取所有用户数据
        $users = Db::name('user')->select();

        // 2. 将查询结果封装为 Collection
        $collection = collection($users);

        // 3. 过滤:只保留性别为 female 的用户
        $femaleUsers = $collection->filter(function ($user) {
            return $user['gender'] === 'female';
        });

        // 4. 排序:按年龄升序排列
        $sortedUsers = $femaleUsers->sortBy('age');

        // 5. 提取字段:只保留 name 和 age 字段
        $result = $sortedUsers->map(function ($user) {
            return [
                'name' => $user['name'],
                'age' => $user['age']
            ];
        });

        // 6. 输出 JSON 响应
        return json([
            'code' => 200,
            'message' => '成功获取女性用户列表',
            'data' => $result->values()->toArray()
        ]);
    }
}

 

posted @ 2025-05-30 11:54  知风阁  阅读(50)  评论(0)    收藏  举报