搜索
系统检测到您的用户名不符合规范:

Thinkphp table 传入数组 不会自动添加表前缀

浏览:3343 发布日期:2015年01月22日 分类:技术分享
Thinkphp table 传入数组 不会自动添加表前缀
用连表查询的时候出现了一点小问题。
table 中数组传入表名不会自动添加表前缀。。$result=M()->table(array('auth_rule_group'=>'rule_group','auth_rule'=>'rule'))->where('rule_group.id=rule.group_id')->find();就改写了一下thinkphp的model文件
\ThinkPHP\Library\Think\Model.class.phppublic function table($table) {
$prefix = $this->tablePrefix;
if(is_array($table)) {
/*数组添加表前缀*/
foreach ($table as $key => $value) {
$table[C('DB_PREFIX').$key]=$value;
unset($table[$key]);
}
$this->options['table'] = $table;
}elseif(!empty($table)) {
//将__TABLE_NAME__替换成带前缀的表名
$table = preg_replace_callback("/__([A-Z0-9_-]+)__/sU", function($match) use($prefix){ return $prefix.strtolower($match[1]);}, $table);
$this->options['table'] = $table;
}
return $this;
}
不知道是不是最好的写法呢? 反正解决了问题! 希望下个版本THINKPHP能改进下!
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
Hook_LiFe
积分:2676 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /