>  기사  >  백엔드 개발  >  自定义类不能实例化!恶心有关问题送分!(用zend studio新建zendframework)

自定义类不能实例化!恶心有关问题送分!(用zend studio新建zendframework)

WBOY
WBOY원래의
2016-06-13 13:13:19797검색

自定义类不能实例化!!!恶心问题送分!!(用zend studio新建zendframework)


models下denglu.php代码:
class denglu{
protected $_username;
protected $_password;
public function denglu(){

}
public function iddeng(){
if (($this->_username=='mr')&&($this->_password=='pass')) {
return true;
}else {
return false;
}
}
}

controllers下SelfController.php代码:

class SelfController extends Zend_Controller_Action{
public function init()
{
/* Initialize action controller here */
}
public function selfAction(){

}
//my页面
public function myAction(){
$this->view->assign("title","网页登录界面");
$this->view->assign("test","网页界面");
if ($this->_request->isPost()){
$username = $this->_request->getPost('username');
$password = $this->_request->getPost('password');
$dengl=new denglu(); //不能实例化!!!!!!!!
}
}
}

烦了我几天!!!!烦死人啦!!!!!!!!!!!!

------解决方案--------------------
我来给你解决吧!有两种方法:
第一种:修改你的入口文件index.php,如下:
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
realpath(APPLICATION_PATH . '/../library/models'),
get_include_path(),
)));
/*-------------包含zend自动加载类*/
require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

第二种:在你的/application/下有一个Bootstrap.php文件,在此文件中添加如下代码:
/**
* 自动加载类
*/
protected function _initAutoLoad()
{
$moduleLoader = new Zend_Application_Module_Autoloader(
array(
'namespace' => '',
'basePath' => APPLICATION_PATH
)
);
return $moduleLoader;
}

然后把models文件夹里面的类命名为Model_Denglu,文件名最好为Denglu.php(首字母大写)
实例化的时候这样用$dengl=new Model_Denglu(); 
以上两种方法都可以搞定。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.