PHP开源开发框架ZendFramework使用中常见问题说明及解决方案


Posted in PHP onJune 12, 2014

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

PHP 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
phpwind中的数据库操作类
Jan 02 PHP
php,ajax实现分页
Mar 27 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP命名空间(Namespace)简明教程
Jun 11 #PHP
PHP APC配置文件2套和参数详解
Jun 11 #PHP
PHP捕获Fatal error错误的方法
Jun 11 #PHP
PHP独立Session数据库存储操作类分享
Jun 11 #PHP
php调用nginx的mod_zip模块打包ZIP文件
Jun 11 #PHP
php+ajax导入大数据时产生的问题处理
Jun 11 #PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 #PHP
You might like
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
php 的反射详解及示例代码
2016/08/25 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
深入学习JavaScript对象
2015/10/13 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
js实现扫雷源代码
2020/11/27 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
python 全局变量的import机制介绍
2017/09/07 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
使用python实现滑动验证码功能
2019/08/05 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
护士实习鉴定范文
2013/12/22 职场文书
心得体会开头
2014/01/01 职场文书
超市开学活动方案
2014/03/01 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL