我尝试添加第三方扩展程序以使用Codeigniter 3.0创建HMVC应用程序
但是当我将MY_Loader
和MY_Router
个文件添加到Third_party
文件夹中的核心文件夹和MX文件夹时,会产生致命错误:
致命错误:调用未定义的方法MY_Loader :: _ ci_object_to_array() 在C:\ xampp \ htdocs \ codeigniter \ application \ third_party \ MX \ Loader.php中 在第300行。
当我删除它们时,应用程序运行正常。是否有运行应用程序所需的其他设置?
答案 0 :(得分:12)
这是因为CodeIgniter中不再存在MX / Loader.php中使用的函数。
您可以将其添加回Loader.php
protected function _ci_object_to_array($object) {
return is_object($object) ? get_object_vars($object) : $object;
}
答案 1 :(得分:3)
打开您的文件application / third_party / MX / Loader.php
protected function _ci_object_to_array($object) {
return is_object($object) ? get_object_vars($object) : $object;
}
在Loader类中添加上述函数。
答案 2 :(得分:1)
在应用程序的第300行/ third_party / MX / Loader.php
此行生成CI 3.1.3
的错误 return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
替换为此行。
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
答案 3 :(得分:0)
我找到了以下解决方案
在application / third_party / MX / Loader.php中,您可以更改以下内容。
在公共函数视图下($ view,$ vars = array(),$ return = FALSE)查找...(接近第300行)
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
将其替换为
if (method_exists($this, '_ci_object_to_array'))
{
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
} else {
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
也许wiredesignz很快会发布它的更新。在此期间,您可以实现上述修复和恢复编码。
答案 4 :(得分:0)
我在/MX/Loader.php第300行上替换
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
使用
return (method_exists($this, '_ci_object_to_array') ? $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)) : $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return)));