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 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
PHP文件读写操作之文件读取方法详解
Jan 13 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
php的ZipArchive类用法实例
Oct 20 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
May 26 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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/04 新手入门
jQuery之网页换肤实现代码
2011/04/30 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python安装Scrapy图文教程
2017/08/14 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python进行文件对比的方法
2018/12/24 Python
python os模块简单应用示例
2019/05/23 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
Django密码存储策略分析
2020/01/09 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
自荐信格式范文
2013/10/07 职场文书
大学生求职计划书
2014/04/30 职场文书
广告宣传策划方案
2014/05/21 职场文书
红头文件任命书范本
2014/06/05 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
保管员岗位职责
2015/02/14 职场文书
2015年组织部工作总结
2015/04/03 职场文书
法定代表人资格证明书
2015/06/18 职场文书
课程设计感想范文
2015/08/11 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android