PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
发布:smiling 来源: PHP粉丝网 添加日期:2021-02-11 10:38:14 浏览: 评论:0
Zend Framework(简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。
MVC 代码书写:
控制器代码书写:
- <?php
- class IndexController extends Zend_Controller_Action
- {
- function init()
- {
- $this->registry = Zend_Registry::getInstance();
- $this->view = $this->registry['view'];
- $this->view->baseUrl = $this->_request->getBaseUrl();
- }
- function indexAction()
- {
- $this->view->word=" I love spurs";
- echo $this->view->render("index.html");
- }
- function addAction(){
- //如果是POST过来的值.就增加.否则就显示增加页面
- }
- }
- ?>
控制当中写内容:
- $this->view->word="ggg";
- $this->view->render("index.html");
- ---->index.html echo $this->word;
- application->config.ini
- [general]
- db.adapter=PDO_MYSQL
- db.config.host=localhost
- db.config.username=root
- db.config.password=
- db.config.dbname=think_zw
配置文件引入到framework里面去,代码如下:
- //配置数据库参数,并连接数据库
- $config=new Zend_Config_Ini('./application/config/config.ini',null, true);
- Zend_Registry::set('config',$config);
- $dbAdapter=Zend_Db::factory($config->general->db->adapter,$config->general->db->config->toArray());
- $dbAdapter->query('SET NAMES UTF8');
- Zend_Db_Table::setDefaultAdapter($dbAdapter);
- Zend_Registry::set('dbAdapter',$dbAdapter);
单一入口模式:localhost/index/add/访问index模块下的add方法
function addAction(){}(在IndexController.php)
默认访问为index模块下的index方法
再建立一个模块model里面的message.php,代码如下:
- <?php
- class Message extends Zend_Db_Table
- {
- protected $_name ="message";
- protected $_primary = 'id';
- }
- ?>
模块实例化:
- function indexAction()
- {
- $message=new message();//实例化数据库类
- //获取数据库内容
- $this->view->messages=$message->fetchAll()->toArray();
- echo $this->view->render('index.phtml');//显示模版
- }
- <?foreach($this->messages as $message): ?>
- <tr>
- <th><?php echo $message['title']; ?></th>
- <td><?php echo $message['content']; ?></td>
- </tr>
- <?endforeach; ?>
修改和删除数据,代码如下:
- <?php if(2==2):?>
- kk
- <?php else:?>
- ll
- <?php endif;?>
index.phtml里面加上,代码如下:
- <a href="<?php echo $this->baseUrl?>/index/exit">编辑</a>
- <a href="<?php echo $this->baseUrl?>/index/delete">删除</a>
添加一个新的方法:edit.phtml,代码如下:
- function editAction(){
- $message = new Message();
- $db = $message->getAdapter();
- if(strtolower($_SERVER['REQUEST_METHOD'])=='post'){
- $id = $this->_request->getPost('id');
- $cid = $this->_request->getPost('cid');
- $title = $this->_request->getPost('title');
- $set = array(
- 'cid'=>$cid,
- 'title'=>$title
- );
- $where = $db->quoteInto('id = ?',$id);
- //更新数据
- $message->update($set,$where);
- unset($set);
- echo '修改数据成功!<a href="'.$this->view->baseUrl.'/index/index/">返回</a>';
- }else{
- $id = $this->_request->getParam('id');
- $this->view->messages = $message->fetchAll('id='.$id)->toArray();
- echo $this->view->render('edit.phtml');
- }
- }
- function delAction(){
- $message = new Message();
- $id = (int)$this->_request->getParam('id');
- if($id > 0){
- $where = 'id = ' . $id;
- $message->delete($where);
- }
- echo '删除数据成功!<a href="'.$this->view->baseUrl.'/index/index/">返回</a>';
- }
异常出现:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index.php)' in
解决办法:在index.php中的代码如下:
$frontController =Zend_Controller_Front::getInstance();后加上
$frontController->setParam('useDefaultControllerAlways', true);
id/3 等于以前的?id=3
Tags: ZendFramework
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)