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中的时间显示
Jan 18 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
php采集时被封ip的解决方法
Aug 29 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
yii插入数据库防并发的简单代码
May 27 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 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防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
axios基本入门用法教程
2017/03/25 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
js最简单的双向绑定实例讲解
2018/01/02 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
linux 后台运行node服务指令方法
2018/05/23 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
汽车维修求职信
2014/06/15 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
中学推普周活动总结
2015/05/07 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
服务器nginx权限被拒绝解决案例
2022/09/23 Servers