模型自动验证和数据表操作

模型自动验证和数据表操作

一、模型的作用

(一)大多情况加操作数据表,文件名称,类的的名称一般对应数据表
(二)验证字段的合法性

案例展示:数据表user

namespace Home\Model;
use Think\Model;
class UserModel extends Model {
}

二、如果操作指定数据库中的数据表,需要特别设置

1、特别的文件名,类名,不一定要和数据表名一致

案例展示:操作数据库run_order,数据表shop_car

//*****
//*****文件名称 RunOrderTableShopCarModel.class
//*****
<?php
namespace Home\Model;
use Think\Model;
class RunOrderTableShopCarModel extends Model
{
    //指定数据库
    protected $dbName = 'run_order';
    //指定数据表
    protected $trueTableName = 'shop_car';
}

三、验证操作字段的合法性

(一)关键字:$_validate

<?php
namespace Home\Model;
use Think\Model;
class RunOrderTableShopCarModel extends Model
{
   //指定数据库
    protected $dbName = 'run_order';
    //指定数据表
    protected $trueTableName = 'shop_car';
    //验证字段
    protected $_validate = array(
        //必填
        array('goodid','require','请填写ID',1,'regex',3),
        //新增或者修改时,不能重名
        array('goodid','','ID重复了',1,'unique',3),
        //在一定范围内
        array('goodid',[1,2,3],'ID不在范围内',1,'in',3),

        array('title','require','请填写标题',1,'regex',3),
        array('title','require','请填写标题',1,'regex',3),
        array('title','checkTitle','标题格式不对',1,'callback',3),
        array('created','require','请填写日期',1,'regex',3),
    );

    public function checkTitle()
    {
        $title = I("post.title");
        if ($title == 'a') {
            return true;
        } else {
            return false;
        }
    }
}

(二)使用验证方法

1、实例化模型:D(‘模型文件名称’);
2、调用验证方法: m d − > c r e a t e ( 字 段 数 据 变 量 ) 3 、 获 取 验 证 结 果 : md->create(字段数据变量) 3、获取验证结果: md>create()3md->getError()

案例展示:

//******
//******模型
//******
namespace Home\Model;
use Think\Model;
class RunOrderTableShopCarModel extends Model
{
    //指定数据库
    protected $dbName = 'run_order';
    //指定数据表
    protected $trueTableName = 'shop_car';
}

//******
//******控制器
//******
public function add()
    {
        //******实例化模型
        $RunOrderTableShopCar =  D('RunOrderTableShopCar');
        if (IS_POST) {
            if ($RunOrderTableShopCar->create(I("post"))) {
                //******新增
                $res = $RunOrderTableShopCar->add();
                //******删除
                $RunOrderTableShopCar->where('id=2')->delete();
                //******修改
                $data = array();
                $data['title'] = '我在修改标题';
                $RunOrderTableShopCar->where('id=10')->save($data);
                //******查看
                $list = $RunOrderTableShopCar->where('id=10')->find();
            } else {
                 //******获取验证结果
                pri($RunOrderTableShopCar->getError());
            }
        }
        $this->theme('theme_blue')->display();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值