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 查询的更多相关文章

  1. laravel 查询数据返回的结果

    laravel查询数据返回的结果 在插入数据库的时候,发现查询数据返回的结果是一个对象;即使是空数据 返回的不是true或者false 那么要判断该结果是否查询有结果 该如果呢? 学习源头: http ...

  2. Laravel查询构造器简介

    数据表 CREATE TABLE IF NOT EXISTS students( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NO ...

  3. Laravel 查询包括软删除的记录

    查询结果包括已被软删除的记录: Model::withTrashed()->get(); 只查询软删除记录: Model::onlyTrashed()->get(); PS:个人博客-La ...

  4. laravel 查询构建器(连贯操作)

    注:laravel 查询返回行的都是 php 的 stdClass 对象实例,不是数组!!!! 1)查询多行(get) DB::table('table_name')->get(); 带偏移和限 ...

  5. laravel查询数据库获取结果如何判断是否为空?

    laravel 查询数据库获取结果如何判断是否为空? 大家使用的场景是这样的: 1 $users = DB::table('users')->where('id',$id)->get(); ...

  6. laravel查询构造器中别名的问题

    Laravel框架对数据库的封装是比较完善的,用起来也比较方便.但之前有一个问题一直困扰着我,就是利用laravel作查询时.如果想给表名或是字段名起别名是比较麻烦的事.但翻阅它的文档不难发现,它提供 ...

  7. laravel 查询数据库first()返回的数据转数组

    使用 get_object_vars()可以将他抓转为数组get_object_vars — 返回由对象属性组成的关联数组: 在laravel中其实还可以用 toArray(); json_decod ...

  8. Laravel查询构造器的使用方法整理

    1.结果集 1.1从一张表获取所有行,get方法获取所有行 $users = DB::table('users')->get(); 获取列的值 foreach ($users as $user) ...

  9. laravel -查询近7月走势图案例

    // 获取7月前的时间$time = date('Y-m',strtotime("-0 year -7 month -0 day" ));$where['created_at'] ...

  10. laravel 查询构造器2

    //查询构造器 public function query() { //获取所有的数据 $student = DB::table('student')->get(); var_dump($stu ...

随机推荐

  1. java基础(持续整理)

    文本会梳理java这门语言的所有基础知识,所谓“掌握”这门语言. 1.底层容器 2.并发包 1.locks部分:包含在java.util.concurrent.locks包中,提供显式锁(互斥锁和速写 ...

  2. Codeforces Round #545 (Div. 2)(D. Camp Schedule)

    题目链接:http://codeforces.com/contest/1138/problem/D 题目大意:给你两个字符串s1和s2(只包含0和1),对于s1中,你可以调换任意两个字符的位置.问你最 ...

  3. 深度学习——深度神经网络(DNN)反向传播算法

    深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...

  4. MySql cmd下的学习笔记 —— 有关select的操作(in, and, where, like等等)

    为方便本节学习, 请先自行建立本表: 建一个商品表: create table goods ( -> goods_id mediumint(8) unsigned not null auto_i ...

  5. drand48 等 随机数生成函数

    参考: http://www.man7.org/linux/man-pages/man3/drand48.3.html drand48 返回服从均匀分布的·[0.0, 1.0) 之间的 double ...

  6. P4843 清理雪道

    题目地址:P4843 清理雪道 上下界网络流 无源汇上下界可行流 给定 \(n\) 个点, \(m\) 条边的网络,求一个可行解,使得边 \((u,v)\) 的流量介于 \([B(u,v),C(u,v ...

  7. mac配置supervisor

    mac配置supervisor 安装 brew install supervisor 启动 一种是手动 supervisord -c /usr/local/etc/supervisord.ini 让s ...

  8. python3+requests库框架设计02-封装日志类

    首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...

  9. VC获取操作系统位数

    方法1,msdn 有相应的例子,代码贴出来给你看看 MSDN有相应Example! #include <windows.h> typedef BOOL (WINAPI *LPFN_ISWO ...

  10. 【转】Linux查看系统是32位还是64位方法总结

    这篇博客是总结.归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客.本篇只是整理.梳理这方面的知识,方便自己忘记的时候随时查看. 方法1:getconf LONG_BIT ...