TP6.0 模型搜索器
搜索器用于封装字段的查询条件表达式,一个搜索器对应一个特殊的方法
1. 搜索器方法命名规范
- a. 必须是
public
访问类型 - b. 方法名为:search
FieldName
Attr
FieldName
为数据表字段名的小驼峰转换
2. 模型查询调用获取器(数据库查询无法使用)
withSearch()
- 第一参数为索引数组:指定调用的获取器
- 第二参数为关联数组:搜索条件(字段对应的值)
$data = User::order('id asc')
->withSearch(['username', 'email', 'gender'], [
'username' => input('get.username', '', 'trim'),
'email' => input('get.email', '', 'trim'),
'gender' => input('get.gender', '', 'trim'),
])
->paginate([
'list_rows' => 10,
'query' => input('get.'),
]);
默认查询条件是 =
, 上面查询条件相当于以下条件
where([
'username' => input('get.username', '', 'trim'),
'email' => input('get.email', '', 'trim'),
'gender' => input('get.gender', '', 'trim'),
])
可通过定义搜索器方法改变默认的 =
条件
<?php
namespace app\model;
use think\Model;
class User extends Model
{
####### 搜索器 #######
public function searchUsernameAttr($query, $value, $data)
{
if ($value != '') {
$query->whereLike('username', '%' . $value . '%');
}
}
}
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。