读取器和修改器
读取器,在Model中编写
程序在读取属性时自动根据规则检测是否有这个属性对应的方法
当控制器中实例化并通过对象访问属性会调用此方法 $a 为传过来的属性值 $data 为对象 数据库 ->页面显示 读取过程的操作
protected function getRegTimeAttr($RegTime,$data)
{
// TODO第二个参数$data为整个数据对象名字随便写
return date('Y-m-d',$RegTime);
return $data['email'];
}
控制器中echo $user->address 时,可以在修改器里边组装数据
修改器
程序在写入数据时自动根据规则检测是否有这个属性对应的方法
控制器从表单接收的数据无需转化 页面 -> 数据库 写入过程的操作
protected function setRegTimeAttr($a)
{
//提交过来的数据为$user->reg_time = '2017-10-10';
return strtotime($a);
}
类型转换 在Model层
protected $type = [
'birthday' => 'timestamp:Y-m-d', // 村委时间数
'nickname' => 'serialize'序列化后存储
];
自动完成 在Model层
可以设置成 update/insert/auto
protected $update = [
'sex'=> 0, //也可只配置键名,结合修改器使用,即使控制器中强行设置也不好使
];
查询范围
控制器中 User::scope('email')->all();
可以调用Model层中scopeEmail()方法
Model中
protected function scopeEmail($query)//一定要传参
{
$query -> where('email','30292510@qq.com');
}
控制器中可以传多个参数,and关系 如下
$list = User::scope('email')
->scope('level')->all();//Model中两个方法分开写的
下同
$list = User::scope('email') //('email','30292510qq.com')也可以,对应模型中方法接收两个参数,$query -> where('email',$a);
->scope('level')
->scope(function($query){
$query -> order('user_id','desc');
})
->all();
全局查询范围,不用调用,在使用查询的时候会自动加上去
protected static function base($query)
{
$query -> where('user_id',1);
}
输入和验证
<input $type="hidden" name="__token__" value="{$request.token}" />
控制器中 实例化表 $user = new User;
if ($user->allowField(true)->validate(true)->save(input('post.'))){
//allowField(false)
//TODO
}else{
return $user -> getError();
}
1、验证器中验证
验证器相当于Model,命名要对应数据表 继承validate
protected $rule = [
['','',''],
['','',''],
['','',''],
];
如验证规则为自定义 需要return错误提示true
2、控制器中验证
$res = $this -> validate(input('post.'),'User');
if(true !== $res){
$user = new User;
$user -> allowField(true)->save($data);
}
3、单独验证某字段
$data = input('post.');
$check = Validate::is(input('post.birthday'),'date');//验证参数是否为date格式
$user = new User;
$user->allowField(true)->save($data);
TP5中CURD那点事儿(四)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...