thinkphp 模型扩展二

字段映射--通过模型类,将表单提交的name值对应表中的字段

class UserModel extends Model{
    protecded $_map=array(
        '表单name1'=>'表字段1',
        '表单name2'=>'表字段2',
        //等等
    );
}
字段映射设置完毕后
存入数据:字段可以直接存入表单数组,框架自动转换
提取数据:
    *注意,提取数据必须是一维数组,换句话说 只支持find,不支持select
        $obj=D('Test');    
        $data=$obj->where(条件)->find();
        $res=$obj->parseFieldsMap($data);
        dump($res);    //就是key变化的数组




自动验证,验证方法:
    验证表字段对应的值
    1,放到model中 protected $_validate=array(),根据规则自动验证
    2,Action中 $this->validate($validate)->create(), $validate为验证规则,手动验证
        $model->check(验证数据,验证规则,验证类型);  返回布尔值

命名方法:
    事先在model类中定义筛选条件,在action中直接选择条件进行查询
    1,在model类中定义protected $_scope=array(筛选条件);
    2,使用$Model->scope('筛选条件名')->select();
    筛选条件格式:
        protected $_scope=array(
            'default'=>array(    //使用:$Model->scope()->select();
                'where'=>'条件',    //根据需求选择条件
                'field'=>'字段',
                'order'=>'排序',
                'table'=>'查询表名',
                'limit'=>'结果限制',
                'page'=>'结果分页',
                'having'=>'having查询',
                'group'=>'group查询',
                'lock'=>'查询锁定',
                'distinct'=>'唯一查询',
                'cache'=>'查询缓存',
            ),
            'one_order'=>array(        //使用:$Model->scope('one_order')->select();
                //以上条件
            ),
            'two_order'=>array(        //使用:$Model->scope('two_order')->select();
                //以上条件
            ),
            //等等规则

        );

自动完成:
    完成数据自动处理功能,处理默认值,数据过滤以及其他系统写入字段
    两种方法:
    1,写入到model中
        protected $_auto=array(
            array(表单字段,填充内容,[填充条件],[附加规则]),

        );
    2,写入action中
        $auto=array(
            array(表单字段,填充内容,[填充条件],[附加规则]),
        );

        1),    $Model->setProperty('_auto',$auto);
            $Model->create();
        2),    $Model->auto($auto)->create();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值