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 相关文章推荐
通过对服务器端特性的配置加强php的安全
Oct 09 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
php创建无限级树型菜单
Nov 05 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
php Smarty 字符比较代码
2011/02/27 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
python实现从ftp服务器下载文件
2020/03/03 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
婚礼主持词开场白
2014/03/13 职场文书
2014年公司工作总结
2014/11/22 职场文书
监理中标通知书
2015/04/16 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书