模型专门处理数据库字段、表名、主键、软删除等。主要存放:模型初始化操作、模型事件操作、模型修改器、获取器、搜索器、模型关联等。
模型事件操作、模型修改器、获取器、搜索器、模型关联,尤其是模型关联和搜索器的使用比较广泛
封装某个字段的查询条件,可以完成一些较为复杂的查询,一个搜索器对应一个特殊的方法,方法命令规范为:
search[fieldName]AttrfieldName为数据库字段的驼峰转换,搜索器在调用withSearch方法时触发执行
例如需要给SysUser模型定义name字段搜索器可以使用
namespace app\model\sys;
use app\dict\sys\UserDict;
use core\base\BaseModel;
use think\model\concern\SoftDelete;
/**
* 系统用户模型
* Class SysUser
* @package app\model\sys
*/
class SysUser extends BaseModel
{
/**
* 账号搜索器
* @param $value
*/
public function searchUsernameAttr($query, $value)
{
if ($value) {
$query->whereLike('username', '%'.$value.'%');
}
}
/**
* 用户实际姓名搜索器
* @param $value
*/
public function searchRealnameAttr($query, $value)
{
if ($value) {
$query->whereLike('real_name', '%'.$value.'%');
}
}
}