1/ 运行无措的模块拷贝下, 改了class名和namespace ,提示这个错误
2/ 用 define('BIND_MODULE','QQ'); 的方式自动生成的, OK, 但,删掉QQ目录,清空缓存Runtime目录, 再次生成了QQ目录, 访问就提示这个错误. 意思就是用过一次的名字不能再用了....forever.
3/ 用全新的thinkphp+全新PC环境, 以上错误必现.
4/ 最新版本onethink, PHP 5.5.15 , apache 2.4
例如:
用最新的onethink
创建create.php,内容为:
define('APP_DEBUG', true );
define('BIND_MODULE','QQ');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';访问结果就是 OK的, 但你删掉刚生成的QQ目录, 重新访问下这个create.php重新再生成次QQ目录, 访问就提示 无法加载控制器:Index临时解决方案(原因未知):
ThinkPHP\Common\functions.php 621行之后加一句:
import($class);修改后的controller方法为:/**
* 用于实例化访问控制器
* @param string $name 控制器名
* @param string $path 控制器命名空间(路径)
* @return Think\Controller|false
*/
function controller($name,$path=''){
$layer = C('DEFAULT_C_layer');
if(!C('APP_USE_NAMESPACE')){
$class = parse_name($name, 1).$layer;
import(MODULE_NAME.'/'.$layer.'/'.$class);
}else{
$class = ( $path ? basename(ADDON_PATH).'\\'.$path : MODULE_NAME ).'\\'.$layer;
$array = explode('/',$name);
foreach($array as $name){
$class .= '\\'.parse_name($name, 1);
}
$class .= $layer;
import($class);
}
if(class_exists($class)) {
return new $class();
}else {
return false;
}
} 求大神解惑. 感激不尽. 最佳答案