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读MYSQL中文乱码的解决方法
Dec 17 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
PHP读取xml方法介绍
Jan 12 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php检测图片主要颜色的方法
Jul 01 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 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中文件缓存转内存缓存的方法
2011/12/06 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
Javascript模板技术
2007/04/27 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python pass详细介绍及实例代码
2016/11/24 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python em算法的实现
2020/10/03 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
英国医生在线预约:Top Doctors
2019/10/30 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
人事专员岗位职责
2013/11/20 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
个人求职信范例
2014/01/29 职场文书
入股协议书
2014/04/14 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis