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 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
配置最新的PHP加MYSQL服务器
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
基于php无限分类的深入理解
Jun 02 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP反向代理类代码
Aug 15 PHP
PHP之autoload运行机制实例分析
Aug 28 PHP
php判断用户是否手机访问代码
Jun 08 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
javascript 函数式编程
2007/08/16 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python进行文件对比的方法
2018/12/24 Python
Python函数返回不定数量的值方法
2019/01/22 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
环保守法证明
2015/06/24 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python