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概述.
Oct 09 PHP
杏林同学录(七)
Oct 09 PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
thinkphp实现附件上传功能
May 26 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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
Protoss兵种介绍
2020/03/14 星际争霸
php正则表达式(regar expression)
2011/09/10 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
Vue实现简单分页器
2018/12/29 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
Python isinstance判断对象类型
2008/09/06 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
详解Python模块化编程与装饰器
2021/01/16 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
语文教育专业推荐信范文
2013/11/25 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
2014年管理工作总结
2014/11/22 职场文书
学生检讨书范文
2015/01/27 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL