目录

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", 如果你的数据表没有主键的话,那请加上,因为一个好数据库设计的一条就是"每个表必须包含主键"。如果没有主键那再后期查询的时候也会有很多麻烦的,这个我们后面在讲数据查询的时候还会讲到的。

  • 第三个你要设置的就是强大的数据验证过滤器了,当然这个配置是可选的,你也可以不配置,那就没有数据自动验证和过滤功能了。关于数据验证和过滤的使用方法,请戳这里 数据验证和过滤