Maison  >  Article  >  développement back-end  >  调用模型前数据校验在哪里做

调用模型前数据校验在哪里做

WBOY
WBOYoriginal
2016-06-06 20:08:12980parcourir

排除表单校验的情况

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

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

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

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

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

回复内容:

排除表单校验的情况

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

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

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

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

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

我一般都是在进行数据库读写信息之前进行过滤的。如下:

<code>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;
    }
    //后续操作
}</code>

框架的话有自带的过滤方法,pdo的的机制也挺高的;

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

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn