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 相关文章推荐
1.PHP简介
Oct 09 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
用php解析html的实现代码
Aug 08 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
简单的php文件上传(实例)
Oct 27 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
php生成图片验证码的方法
Apr 15 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
php中的异常和错误浅析
May 03 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之Memcache学习笔记
2013/06/17 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript定时器完整实例
2015/02/10 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python开发中module模块用法实例分析
2015/11/12 Python
Python文件的读写和异常代码示例
2017/10/31 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python中class的定义及使用教程
2019/09/18 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
python中字符串的编码与解码详析
2020/12/03 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
违反学校规定检讨书
2014/01/18 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
考核评语大全
2014/04/29 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
《叶问2》观后感
2015/06/15 职场文书
法人代表证明书范本
2015/06/18 职场文书
环保守法证明
2015/06/24 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript