模型自动验证和数据表操作
一、模型的作用
(一)大多情况加操作数据表,文件名称,类的的名称一般对应数据表
(二)验证字段的合法性
案例展示:数据表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(字段数据变量)3、获取验证结果:md->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();
}