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 相关文章推荐
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
php与php MySQL 之间的关系
Jul 17 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
PHP7 弃用功能
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
解析php中获取系统信息的方法
2013/06/25 PHP
php cli换行示例
2014/04/22 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
一端时间轮换的广告
2006/06/26 Javascript
FCK调用方法..
2006/12/21 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python实现月食效果实例代码
2019/06/18 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
新任教师自我鉴定
2014/02/24 职场文书
社团活动总结
2014/04/28 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
好的促销活动方案
2014/08/21 职场文书
生产操作工岗位职责
2014/09/16 职场文书
2014年社区工作总结
2014/11/18 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Python并发编程实例教程之线程的玩法
2021/06/20 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL