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 addslashes 函数详细分析说明
Jun 23 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
10个简化PHP开发的工具
Dec 25 PHP
php中的观察者模式简单实例
Jan 20 PHP
PHP发送AT指令实例代码
May 26 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 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+APACHE实现用户论证的方法
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JTrackBar水平拖动效果
2007/07/15 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python代码制作configure文件示例
2014/07/28 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
python绘图模块之利用turtle画图
2021/02/12 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
班级学习计划书
2014/04/27 职场文书
数据保密承诺书
2014/06/03 职场文书
室内趣味活动方案
2014/08/24 职场文书
2014年党委工作总结
2014/11/22 职场文书
老干部座谈会主持词
2015/07/03 职场文书
初中团支书竞选稿
2015/11/21 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python