一、创建数据库表
1、创建 数据库 表名 message
2、配置数据库 application/configs/application.ini
官方的
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1
修改后的
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 [mysql] db.adapter=PDO_MYSQL db.params.host=localhost db.params.username=root db.params.password= db.params.dbname=trunk
加载数据库适配器 application/Bootstrap.php (先放到这个文件中,后期再优化)
<?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { //启动 function __construct($application) { parent::__construct($application); //初始化我们的数据库适配器 $url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini'; $dbconfig=new Zend_Config_Ini($url,'mysql'); $db = Zend_Db::factory($dbconfig->db); $db->query('SET NAMES UTF8'); Zend_Db_Table::setDefaultAdapter($db); } }
3、创建模型文件 application/models/Message.php
<?php /** * Created by PhpStorm. * User: 52998 * Date: 2019/4/25 * Time: 22:16 */ //这个类和数据库中的某张表对应,通过Message对象实例可以完成对该表的crud操作 class Message extends Zend_Db_Table { protected $_name='message'; //定义表名 protected $_primary='message_id';//定义表主键 }
4、控制器引入模型文件 application/controllers/IndexController.php
<?php require_once APPLICATION_PATH.'/models/Message.php'; class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body //到数据库中查询 $messageModel= new Message(); $res=$messageModel->fetchAll()->toArray(); echo "<pre>"; print_r($res); echo "</pre>"; exit; //如果这里什么都没有写,相当于,用views/scripts/index.pthtml $this->render('index'); } }
如果报错可以查看php错误日志
在php.ini 中设置,并查看。
error_log ="e:/wamp64/logs/php_error.log"
5,怎样把控制器中获取的数据
public function indexAction() { // action body //到数据库中查询 $messageModel= new Message(); $res=$messageModel->fetchAll()->toArray(); //怎样把控制器中获取的数据(array,object,init,...) $this->view->res=$res; //如果这里什么都没有写,相当于,用views/scripts/index.pthtml $this->render('index'); }
6、view 使用数据 application/views/scripts/index/index.phtml
<style> a:link, a:visited { color: #0398CA; } span#zf-name { color: #91BE3F; } div#welcome { color: #FFFFFF; background-image: url(http://framework.zend.com/images/bkg_header.jpg); width: 600px; height: 400px; border: 2px solid #444444; overflow: hidden; text-align: center; } div#more-information { background-image: url(http://framework.zend.com/images/bkg_body-bottom.gif); height: 100%; } </style> <div id="welcome"> <h1>Welcome to the <span id="zf-name">Zend Framework!</span></h1> <h3>This is your project's main page</h3> <div id="more-information"> <p><img src="http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" /></p> <p> Helpful Links: <br /> <a href="http://framework.zend.com/">Zend Framework Website</a> | <a href="http://framework.zend.com/manual/en/">Zend Framework Manual</a> </p> </div> </div> <?php foreach ($this->res as $message) { echo $message['message_id'].'--'.$message['getter'].'<br />'; } ?>