码迷,mamicode.com
首页 > 其他好文 > 详细

laravel 查询

时间:2019-03-20 14:37:05      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:status   lis   response   span   ||   col   erp   when   end   

public function recommends(Request $request)
    {
        // $sort = $request->query(‘sort‘);
        $userId = $request->query(‘userId‘);
        $email = $request->query(‘email‘);
        $name = $request->query(‘name‘);
        $phone = $request->query(‘phone‘);
        // $role = $request->query(‘role‘);
        $perPage = $request->query(‘perPage‘, 1);
        $showRole = $request->has(‘show_role‘);
        $datas = [
            ‘page‘ => [],
            ‘roles‘ => ‘‘,
            ‘lastPage‘ => 0,
            ‘perPage‘ => $perPage,
            ‘total‘ => 0,
        ];

        if ($showRole) {
            $datas[‘roles‘] = Role::all();
        }

        // user id
        if ($userId && $users = UserRecommended::where(‘user_id‘, $userId)->paginate($perPage)) {
            $datas[‘page‘] = $users->map(function ($user) {
                $user->setHidden([]);
                $user->load(‘user‘);

                return $user->user;
            });

            return response()->json($datas)->setStatusCode(200);
        }

        $sourceUsers = [];
        if ($name || $email || $phone) {
            $sourceUsers = User::when($name, function ($query) use ($name) {
                return $query->where(‘name‘, ‘like‘, "%{$name}%");
            })
            ->when($email, function ($query) use ($email) {
                return $query->where(‘email‘, ‘=‘, $email);
            })
            ->when($phone, function ($query) use ($phone) {
                return $query->where(‘phone‘, ‘like‘, "%{$phone}%");
            })
            ->select(‘id‘)
            ->get()
            ->pluck(‘id‘);
        }

        $users = UserRecommended::with(‘user‘)
            ->when($sourceUsers, function ($query) use ($sourceUsers) {
                return $query->whereIn(‘user_id‘, $sourceUsers);
            })
            ->paginate($perPage);

        $list = $users->getCollection();

        $datas[‘page‘] = $list->map(function ($user) {
            $user->user->setHidden([]);

            return $user->user;
        });

        $datas[‘lastPage‘] = $users->lastPage();
        $datas[‘perPage‘] = $perPage;
        $datas[‘total‘] = $users->total();
        $datas[‘currentPage‘] = $users->currentPage();

        return response()->json($datas)->setStatusCode(200);
    }

laravel 查询

标签:status   lis   response   span   ||   col   erp   when   end   

原文地址:https://www.cnblogs.com/sgm4231/p/10564618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!