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,如若转载,请注明出处:https://blib.cn/15775.html

(0)
上一篇 2019年12月18日 下午7:59
下一篇 2019年12月27日 上午11:13

相关推荐

发表评论

您的电子邮箱地址不会被公开。