Model 配置
优质
小牛编辑
135浏览
2023-12-01
在HerosPHP中,Model和数据表是一一对应的,也就是说一个数据表必须对应一个ModelDao,ModelDao对象用来操作对应的数据表。所有的ModelDao默认都要 extends MysqlModel(目前我们只实现了Mysql的驱动,后期根据需要可以能会增加其他数据库驱动,如mongoDB等),下面我们看看一个:
namespace app\demo\dao;
use herosphp\model\MysqlModel;
use herosphp\filter\Filter;
class UserDao extends MysqlModel {
public function __construct() {
//创建model对象并初始化数据表名称
parent::__construct('member');
//设置表数据表主键,默认为id
$this->primaryKey = 'id';
//设置数据过滤
$this->filterMap = array(
'name' => array(Filter::DFILTER_STRING, array(6, 12), Filter::DFILTER_SANITIZE_TRIM,
array("require" => "名字不能为空.", "length" => "名字长度必需在6-12之间.")),
'email' => array(Filter::DFILTER_EMAIL, NULL, NULL,
array("type" => "请输入正确的邮箱地址.")),
'mobile' => array(Filter::DFILTER_MOBILE, NULL, NULL,
array("type" => "请输入正确的手机号码.")),
'id_number' => array(Filter::DFILTER_IDENTIRY, NULL, NULL,
array('type' => '请输入正确的身份证号码.')),
'content' => array(Filter::DFILTER_STRING, NULL, Filter::DFILTER_MAGIC_QUOTES|Filter::DFILTER_SANITIZE_HTML,
array("require" => "个人简介不能为空."))
);
}
}
注意
创建一个新的Model需要重写构造方法,在构造方法中需要初始化该模型对应的数据表名称
接下来我们还需要设置数据表的主键,默认是"id", 如果你的数据表没有主键的话,那请加上,因为一个好数据库设计的一条就是"每个表必须包含主键"。如果没有主键那再后期查询的时候也会有很多麻烦的,这个我们后面在讲数据查询的时候还会讲到的。
第三个你要设置的就是强大的数据验证过滤器了,当然这个配置是可选的,你也可以不配置,那就没有数据自动验证和过滤功能了。关于数据验证和过滤的使用方法,请戳这里 数据验证和过滤