thinkphp3.2.3 升级到3.2.4时出错问题

有些项目最初用OneThink做的,而OneThink 默认使用的TP 是3.2.0 的,没事的时候就想给升级一下,但是直接复制进去的时候,有错误,导致OneThink 不能运行,排查后,需要修改两个地方

1、修改 Application/Common/Conf/tags.php 文件内容修改为

‘app_init’=>array(‘Common\Behavior\InitHookBehavior’);// 原来没有 Behavior 后缀

2、TP3.2.4 不能自动过滤 数据库中没有的字段,修改 ThinkPHP/Library/Think/Model.class.php 文件 _parseOptions 方法,加粗自动在3.2.3中复制

foreach ( $options [‘where’] as $key => $val ) {
$key = trim ( $key );
if (in_array ( $key, $fields, true )) {
if (is_scalar ( $val )) {
$this->_parseType ( $options [‘where’], $key );
}
} elseif (! is_numeric ( $key ) && ‘_’ != substr ( $key, 0, 1 ) && false === strpos ( $key, ‘.’ ) && false === strpos ( $key, ‘(‘ ) && false === strpos ( $key, ‘|’ ) && false === strpos ( $key, ‘&’ )) {
if (! empty ( $this->options [‘strict’] )) {
E ( L ( ‘_ERROR_QUERY_EXPRESS_’ ) . ‘:[‘ . $key . ‘=>’ . $val . ‘]’ );
}
unset ( $options [‘where’] [$key] );
}
}

 

 

 

本文收集于网络,仅供技术交流使用,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 admin@webse.cn 举报,一经查实,本站将立刻删除涉嫌侵权内容,本文链接:https://webse.cn/15775.html

发表评论

登录后才能评论