TP框架中表名不支持以_下划线开头的bug修复

浏览:1180 发布日期:2013/12/14 分类:技术分享
//原文件 /Common/common.php中的函数:
function parse_name($name, $type=0) {
    if ($type) {
        return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));
    } else {
        return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
    }
}
-----------------
修复后:代码,改了2行。function parse_name($name, $type=0) {
    $_num=strlen($name)-strlen(ltrim($name,'_'));//记录被删除的_个数
  if ($type) {
        return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));
    } else {
        return substr($name,0,$_num).strtolower(ltrim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));//恢复被删除的个数
    }
}
这样,我们的数据库表名就支持以下划线开头。原本是不支持的。请大家拍砖。
最佳答案
评论( 相关
后面还有条评论,点击查看>>