燕玉苗的ThinkPHP笔记(八) 模型方法命名

浏览:666 发布日期:2015/07/07 分类:技术分享 关键字: thinkphp 模型 自动验证
public function findUser($where){ // Don't use 'find' as function name
    $User = M('User');
    return $User->where($where)->find();
}
1 问题描述
写了一个注册功能,用了TP的自动验证来验证用户注册邮箱的唯一性,结果发现,只要数据库里面有一条数据存在,那么就会提示该邮箱已经被注册

2 原因
查看TP的日志,发现因为我在UserModel里面写了find方法,在TP验证唯一时,它会自动调用find方法查询数据库来验证该字段的唯一性,从而导致了冲突

3 总结
在模型里面写方法的时候 不要使用 add、find等关键字,以免和TP的函数冲突,比如UserModel里的方法可以这样命名 addUser、findUser,
既不会有冲突,还能知道该方法由TP的那个方法封装而来,一目了然


最佳答案
评论( 相关
后面还有条评论,点击查看>>