当前位置:首页 > 编程技术 > 正文内容

TP6.0 搜索器使用示例

yc8881年前 (2023-01-06)编程技术356

TP6.0 搜索器使用示例

1. 构建搜索器参数


  1. /**
  2. * 模型搜索器参数构造函数
  3. *
  4. * @param array $keys
  5. * @param array $where
  6. */
  7. function where_filter(&$keys, array $where)
  8. {
  9. // 去掉数组里的空字符串和null
  10. $where = array_filter($where, function ($k) {
  11. return ($k === '' || $k === null) ? false : true;
  12. });
  13. // 拿到所有键
  14. $keys = array_keys($where);
  15. // 返回数组
  16. return $where;
  17. }

2. 根据时间范围筛选


  1. /**
  2. * 追加获取器
  3. *
  4. * create_time_range 根据时间范围筛选
  5. */
  6. public function searchCreateTimeRangeAttr($query, $value)
  7. {
  8. $query->whereBetweenTime('create_time', ...explode(' - ', $value));
  9. }

3. 根据 nickname 字段模糊查询


  1. /**
  2. * 根据nickname字段模糊查询
  3. *
  4. * @param [type] $query [description]
  5. * @param [type] $value [description]
  6. * @param [type] $data [description]
  7. */
  8. public function searchNicknameAttr($query, $value, $data)
  9. {
  10. $value !== '' && $query->whereLike('nickname', '%' . $value . '%');
  11. }

4. hasWhere 根据关联条件来查询当前模型对象数据


商家表

  1. mysql> select * from merch;
  2. +----+---------+-----------------+
  3. | id | user_id | name |
  4. +----+---------+-----------------+
  5. | 1 | 1 | 昊天宗 |
  6. | 2 | 2 | 七宝琉璃宗 |
  7. 2 rows in set (0.00 sec)

用户表

  1. mysql> select * from user;
  2. +----+--------+-------+
  3. | id | name | score |
  4. +----+--------+-------+
  5. | 1 | 张三 | 30 |
  6. | 2 | 李四 | 20 |
  7. | 3 | 王五 | 50 |
  8. +----+--------+-------+
  9. 3 rows in set (0.02 sec)

应用场景: 在商家列表中根据用户昵称查询商家

  1. public function searchNameAttr($query, $value, $data)
  2. {
  3. $query->hasWhere('user', function ($query) use ($value) {
  4. $query->whereLike('name', '%' . $value . '%');
  5. });
  6. }

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10339.html

标签: 软件编程
分享给朋友:

“TP6.0 搜索器使用示例” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...