laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)
laravel中比较常规的列表查询:
/**
* 活动列表
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function getActiveList(Request $request,UrlManager $urlManager)
{ $name = $request->get('name'); //活动标题
$start_time = $request->get('start_time'); //活动开始时间
$author_user_name = $request->get('author_user_name'); //活动发布者
$active_classify_id = $request->get('active_classify_id'); //活动分类 $limit = (int) $request->get('limit', 15);
$offset = (int) $request->get('offset', 0); $query = ActiveContent::with(['user'])
->when($active_classify_id, function ($query) use ($active_classify_id) {
$query->where('active_classify_id', $active_classify_id);
})
->when($name, function ($query) use ($name) {
$query->where('name', 'like', sprintf('%%%s%%', $name));
})
->when($start_time, function ($query) use ($start_time) {
$query->where('created_at', '>=', $start_time);
})
->when($author_user_name, function ($query) use ($author_user_name) {
return $query->whereHas('user', function ($query) use ($author_user_name) {
return $query->where('name', 'like', '%'.$author_user_name.'%');
});
}); $total = $query->count('id');
$items = $query->limit($limit)
->offset($offset)
->orderBy('weight', 'desc')
->orderBy('id', 'desc')
->paginate()->toArray(); foreach($items['data'] as $key=>$value){
//获取活动封面
$active_face = ActiveContent::with('faces')->where('id', $value['id'])
->select('face', 'id')->get()->keyBy('id'); $items['data'][$key]['face']=(isset($active_face[$value['id']]) && $active_face[$value['id']]->faces) ? $urlManager->make($active_face[$value['id']]->faces->file) : ''; } return response()->json($items, 200, ['x-ad-total' => $total]); }
laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)的更多相关文章
- laravel 里面结合关联查询 的when()用法
Laravel 5.6 里面的when用法: $name = $request->get('name'); //活动标题 $start_time = $request->get('star ...
- Sentry 监控 - Search 搜索查询实战
系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...
- HQL查询——HQL查询的基本用法
HQL查询--HQL查询的基本用法 1.HQL语法类似于SQL语法,但是需要注意的是,HQL是一种完全面向对象的查询语言.SQL语言操作的对象是数据表.列等数据库对象,而HQL语言的操作对象是类.实例 ...
- MVC5搜索/查询 流程功能的实现
接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去Controller(控制器)里去搞一个搜索 ...
- SharePoint 2007 单列表模糊查询SPD定制
应用场景:项目中总会遇到一些列表,存着是用户.项目等数据,而我们需要查询有哪些项目,这时候,就需要用到模糊查询了,而这样的查询,基本不需要跨列表,所以,也没必要配置复杂的搜索,用Designer(简称 ...
- Mysql全文搜索match against的用法
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE ...
- Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法 2016-10-10 16:52:38 ...
- React后台管理系统-商品列表搜索框listSearch组件
1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap"> <div classN ...
- mysql 中合并查询结果union用法 or、in与union all 的查询效率
mysql 中合并查询结果union用法 or.in与union all 的查询效率 (2016-05-09 11:18:23) 转载▼ 标签: mysql union or in 分类: mysql ...
随机推荐
- nginx 配置后网站图片加载出来一半或者不出来
项目进行nginx反向代理后发现图片和js.css等加载很慢,甚至加载不出来. 然后查看nginx的log,发现错误如下: 2016/06/30 15:31:12 [crit] 29465#0: *1 ...
- tp3 save操作小bug误区
$china_area->save(['is_del' => 1,'updatetime' => time()]); SHOW COLUMNS FROM `tf_china_area ...
- 关于TCP连接状态的解释
TCP各个状态主要存在于三次握手和四次挥手的过程 1.TCP建立连接时的三次握手: 服务端应用监听端口处于LISTEN状态,等待建立连接. 第一次握手:客户端发送SYN=一个随机数,然后进入SYN_S ...
- 安装使用hibernate tools
help-Eclipse marketplace-hibernate(搜索)-jboss tools(安装)
- Redis在Windows上使用和集群配置
一.什么是Redis Redis是一个开源的,使用C语言编写的面向键值对类型的分布式Nosql数据库系统,功能类似Memcache,但比Memcache功能更丰富.官网地址:https://redis ...
- Multi-Anti-Nim游戏结论及证明
一.定义 Anti-Nim 游戏: 取走最后一个石子的玩家输 Multi-Nim游戏: 每次取完后可以将一堆石子分为多堆,不能存在空堆 Multi-Anti-Nim游戏: 每次取完后可以将一堆石子分为 ...
- Linux命令(九)查找文件find
4. find -type f 文件 d 目录 l 连接 5. find -size 6. find -maxdepth -2 (最深路径为2) 7. find ./ -maxdepth 1 ...
- string和list互转
import string str = 'abcde' list = list(str) OR list = str.split() list ['a', 'b', 'c', 'd', 'e'] st ...
- Python排序算法之冒泡排序
冒泡排序 顾名思义,冒泡排序直观的意思是气泡越大冒的越快:),对应到我们的列表中就是数字最大的先选出来,然后依次进行.例如 myList = [1,4,5,0,6],比较方式为: 相邻的两个数字先进行 ...
- asp.net EF框架执行原生SQL语句
1.执行无参数sql: string sql = "select * from IntegralInfo where convert(nvarchar,getdate(),23)='{0}' ...