调用模型前数据校验在哪里做
程序员文章站
2022-05-13 09:57:21
...
排除表单校验的情况
比如在控制器中要调一个Model
的方法,那么传到这个方法里的其中一个参数,比如$city_id
其实这个$city_id
即可以是int
也可以是一个array
那么这个时候POST过来的的$city_id
大家一般都是在哪里校验的。
如果是model校验,感觉多调了一次模型,不好
但是如果在控制器校验,但是我觉得模型还是最好校验一次,以防其他人调用我自己方法的时候也没在控制器校验就直接查数据了。但是这样的话控制器和模型就对数据做了2次同样的校验
所以问下大家,在平时的编码过程中大部分情况下是怎样处理的?
回复内容:
排除表单校验的情况
比如在控制器中要调一个Model
的方法,那么传到这个方法里的其中一个参数,比如$city_id
其实这个$city_id
即可以是int
也可以是一个array
那么这个时候POST过来的的$city_id
大家一般都是在哪里校验的。
如果是model校验,感觉多调了一次模型,不好
但是如果在控制器校验,但是我觉得模型还是最好校验一次,以防其他人调用我自己方法的时候也没在控制器校验就直接查数据了。但是这样的话控制器和模型就对数据做了2次同样的校验
所以问下大家,在平时的编码过程中大部分情况下是怎样处理的?
我一般都是在进行数据库读写信息之前进行过滤的。如下:
user_model
public function get_user_name($uid) {
$uid = intval($uid); //校验
if(!$uid) {
return FALSE;
}esle{
.... //数据库查询操作
}
}
controller
public function user() {
$uid = $_GET['id];
if(!M('user_model')->get_user_name($uid)){
return FALSE;
}
//后续操作
}
框架的话有自带的过滤方法,pdo的的机制也挺高的;
那就都校验,哈哈,反正数据库操作之前是必须校验的~
仔细想了想,还是模型里面过滤更合理