>  기사  >  백엔드 개발  >  数据库初始化父类继承的有关问题

数据库初始化父类继承的有关问题

WBOY
WBOY원래의
2016-06-13 11:52:47786검색

数据库初始化父类继承的问题
小弟刚开始学ZendFramework框架,有个问题想请教各位大神

数据库初始化代码,我原先写在Bootstrap类中,是没有问题的。
写在控制器的init()方法里也可以。
但是我想抽象出一个类,并继承这个类,就是不行
总是报错 An error occurred     Application error,错误日志也没有东西
我觉得应该是没有调用父类的init()方法导致没有初始化数据库造成的
但是应该怎么修改代码呢,求指教

下面是我的代码

1 父类 BaseController 

<br />class BaseController  extends Zend_Controller_Action{<br />	<br />	public function init()<br />	{<br />		//初始化数据库适配器<br /> 		$url = constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';<br /> 		$dbconfig = new Zend_Config_Ini($url,'mysql');<br /> 		$db = Zend_Db::factory($dbconfig->db);<br /> 		$db->query('SET NAMES UTF8');<br /> 		Zend_Db_Table::setDefaultAdapter($db);<br /> 		//echo "<pre class="brush:php;toolbar:false">"; 通过访问base控制器测试这里是有值的<br /> 		//print_r($db);<br /> 		//exit();<br />	}<br />	<br />	public function indexAction()<br />	{<br /><br />	}<br />}<br />


2 IndexController
<br />require_once   APPLICATION_PATH. '/models/tb_user.php';<br />require_once  'BaseController.php';<br /><br />//有对数据库进行操作的控制器继承BaseController,没有对数据库进行操作的控制器继承Zend_Controller_Action<br />class IndexController extends BaseController<br />{<br /><br />    public function init()<br />    {    	<br />    	//把下面的注释就没有问题,放开第一句的注释就会报错An error occurred    Application error<br />     	$user = new tb_user();  <br />        $res = $user->fetchAll()->toArray();   //查询数据表tb_user中的数据<br />        $this->view->res = $res;  //将获得的数据分配给View<br />        $this->render('index');<br />    }<br /><br />    public function indexAction()<br />    {<br />        // action body<br />    }<br />

------解决方案--------------------
parent::init();//调用父类的构造函数试试
$user = new tb_user();  

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