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

TP6.0 搜索器使用示例

yc8882年前 (2023-01-06)编程技术448

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...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

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

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

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

【说站】linux中redis如何以redis用户重启?

【说站】linux中redis如何以redis用户重启?

通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。效果展示获取到的数据咱们保存到表格可视化地图颜色是...