ThinkPHP6.0 模型搜索器的使用
2024-08-29
48
搜索器用于封装查询条件表达式,必须在模型中定义,只有使用模型操作数据时才能用搜索器。调用搜索器时使用的是数据表字段,可以不用定义搜索器方法,默认是 = 条件;如果不是数据表字段,必须定义对应的搜索器方法。
1. 调用搜索器
直接调用,默认查询条件是 =
UserModel::withSearch(['name'], ['name' => '张三'])
->fetchSql(true)
->select();
SELECT * FROM `user` WHERE `name` = '张三'
在模型中自定义搜索器方法,改变默认的 =
<?php
namespace app\index\model;
class User extends \think\Model
{
public function searchNameAttr($query, $value, $data)
{
$query->where('name','like', $value . '%');
}
}
UserModel::withSearch(['name'], ['name' => '张三'])
->fetchSql(true)
->select();
SELECT * FROM `user` WHERE `name` LIKE '张三%'
searchNameAttr($query, $value, $data)" class="reference-link" target="_blank">2. 搜索器方法的三个参数 searchNameAttr($query, $value, $data)
$query:
think\db\Query
对象,用于链接操作$value:withSearch() 第二个参数中当前搜索器字段对应的值$data:withSearch() 第二个参数的值
可以直接在搜索器方法中打印参数,看看到底是个啥
更新于:2个月前<?php
namespace app\index\model;
class User extends \think\Model
{
public function searchNameAttr($query, $value, $data)
{
halt($query, $value, $data);
$query->where('name','like', $value . '%');
}
}
赞一波!1
相关文章
- 【说站】java并发模型中的两种锁
- 【说站】java内存模型的组成
- 【说站】Java内存模型的并发处理
- java 安全沙箱模型详解
- TP6.0 模型获取器
- TP6.0 模型的关联删除
- TP6.0 搜索器使用示例
- TP6.0 模型JSON字段的使用 【系统配置表 key-value】
- TP6.0 一对一模型关联 belongsTo 相对关联(反向关联)
- TP6.0 一对一模型关联 hasOne
- TP6模型类在PhpStorm中没有方法提示
- TP6.0 模型搜索器
- 如何在 Django 中创建抽象模型类?
- 区块链模型解析:公有链、私有链与联盟链全面解读
- 订单履约系统的概念模型
- 使用Java编写一个简易的区块链概念模型代码
- 在Windows PC本地搭建类似ChatGPT的AI模型和交互式UI图文教程
- 特征工程:从数据到模型的桥梁——提升机器学习模型性能的关键步骤
- 谷歌推出交互生成式Genie模型可以创造2D交互游戏画面
- 大分类显示自定义模型字段的方法
文章评论
评论问答