php - 调用模型前数据校验在哪里做
天蓬老师
天蓬老师 2017-04-10 17:42:39
[PHP讨论组]

排除表单校验的情况

比如在控制器中要调一个Model的方法,那么传到这个方法里的其中一个参数,比如$city_id 其实这个$city_id即可以是int也可以是一个array

那么这个时候POST过来的的$city_id 大家一般都是在哪里校验的。

  1. 如果是model校验,感觉多调了一次模型,不好

  2. 但是如果在控制器校验,但是我觉得模型还是最好校验一次,以防其他人调用我自己方法的时候也没在控制器校验就直接查数据了。但是这样的话控制器和模型就对数据做了2次同样的校验

所以问下大家,在平时的编码过程中大部分情况下是怎样处理的?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(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的的机制也挺高的;

伊谢尔伦

那就都校验,哈哈,反正数据库操作之前是必须校验的~

仔细想了想,还是模型里面过滤更合理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号