首頁  >  文章  >  後端開發  >  数据库初始化父类继承的有关问题

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

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