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. XML解析技术-dom4j

  2. python - 文件系统和文件

    文件系统和文件        文件系统是os用于明确磁盘或分区上的文件的方法和数据结构--即在磁盘上组织文件的方法        计算机文件,是存储在某种长期储存设备或临时存储设备中的一段数据流,并且 ...

  3. Spark架构与作业执行流程简介

    https://www.cnblogs.com/shenh062326/p/3658543.html

  4. 全国人口 信息(NCIIC)接口开发纪要

    阶段一:根据wsdl2java命令解析https://ws.nciic.org.cn/nciic_ws/services/NciicServices?wsdl以生成接口调用的对象类: wsdl2jav ...

  5. 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换

    在项目中经常会遇到数组转集合.集合转数组.数组之间类型转换等操作 1.数组转集合 为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码: String str[] = { ...

  6. EditText设置可以点击,但是不可以编辑

    EditText设置  editText.setEnabled(false);后不可编辑也不可点击 设置  setFocusable(false)后不可编辑,但是再设置 setFocusable(tr ...

  7. QR 编码原理(三)

    一.日本汉字(KANJI)是两个字节表示的字符码,编码的方式是将其转换为13字节的二进制码制. 转换步骤为: 1.对于JIS值为8140(hex) 到9FFC(hex)之间字符: a)将待转换的JIS ...

  8. Maya API Test

    import maya.OpenMaya as OpenMaya import maya.OpenMayaMPx as OpenMayaMPx sl = OpenMaya.MSelectionList ...

  9. LwIP Application Developers Manual1---介绍

    1.前言 本文主要是对LwIP Application Developers Manual的翻译 2.读者(应用开发手册的读者) 谁适合读这份手册 网络应用的开发者 想了解lwIP的网络应用开发者 阅 ...

  10. 多线程内存问题分析之mprotect方法【转】

    转自:https://blog.csdn.net/agwtpcbox/article/details/53230664 http://www.yebangyu.org/blog/2016/02/01/ ...