PHP开源开发框架ZendFramework使用中常见问题说明及解决方案_php实例

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

时间: 2024-10-29 07:01:39

PHP开源开发框架ZendFramework使用中常见问题说明及解决方案_php实例的相关文章

《Java语言导学(原书第6版)》一1.4 常见问题(及其解决方案)

1.4 常见问题(及其解决方案) 1.4.1 编译器问题 该错误消息说明Windows系统没有找到编译器(javac).有一个办法可以解决该问题.假设JDK安装在目录C:\jdk 1.8.0下.在提示符下输入下述命令并按回车键: 这样设置后,每次编译或运行程序时,都要执行命令C:\jdk1.8.0\bin\javac或C:\jdk1.8.0\bin\java.更新PATH变量可避免这种重复输入,详情参考<JDK 8安装指南>. 该错误消息说明编译时忘记输入.java后缀.切记,编译命令是jav

《Java语言导学(原书第6版)》一一1.4 常见问题(及其解决方案)

1.4 常见问题(及其解决方案)1.4.1 编译器问题 1.?Microsoft Windows系统的常见错误消息 该错误消息说明Windows系统没有找到编译器(javac).有一个办法可以解决该问题.假设JDK安装在目录C:\jdk 1.8.0下.在提示符下输入下述命令并按回车键: 这样设置后,每次编译或运行程序时,都要执行命令C:\jdk1.8.0\bin\javac或C:\jdk1.8.0\bin\java.更新PATH变量可避免这种重复输入,详情参考<JDK 8安装指南>. 该错误消

PHP开发框架kohana中处理ajax请求的例子_php实例

今天分享的是在kohana中处理页面的ajax请求.2步搞定.前提是你的kohana框架已经可以正确运行了,注意下. 1.页面发出请求. 现在主流的javascript框架非jQuery莫属.jQuery对ajax请求也作了封装,这里就以jQuery为例来写个.demo是获取后台json串,并且用each处理.代码大部分是从jqapi搞来的,准确也方便. $.ajax({ url: "/test/json",//test是控制器,json是action,带/是相对站点根目录的意思 da

ASP.NET Aries 开源开发框架:开发指南(一)

前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架原理. 开源的文章或源码获取地址见上一篇文章:开源:ASP.NET Aries 开发框架   关于框架: 首先,这是一套开发框架,它类同于WebForm.MVC..NET Core. 相比webform,mvc,.NET Core 它简化了后端很多东西,它也加强了前端一些功能,默认集成的功能和界面,

NutzWk 4.0.1新启航,Java 企业级开源开发框架

NutzWk 基于Nutz的开源企业级开发框架 前言 本项目源于2010年,那时老东家还在使用Jsp和Struts1,需要手动创建并释放连接池.需要配置XML请求路径和类映射关系.要支持刚刚兴起的JSON非常痛苦等等的原因,开始选择适用"快速开发.功能丰富.扩展性强.性能优越"等技术要求的框架产品,讨厌Spring的繁杂配置.Hibernate及Mybatis的繁琐,讨厌一切让开发变得低效和繁杂的技术,这和Nutz的设计理念不谋而合. 使用本框架开发商用项目始于2012年,先是基于Nu

Phpwind发布windframework开源开发框架

中介交易 SEO诊断 淘宝客 云主机 技术大厅 今日,知名互联网产品与服务提供商phpwind正式推出通用的php开源技术框架'windframework'.基于phpwind多年专注php开发积累沉淀下来的技术和解决方案,windframework将为未来推出的phpwind下一代社区产品提供统一的应用开发架构服务.而作为一款通用型的框架,windframework也将为开发者提供更为简单.安全.扩展性良好的应用开发支持. phpwind旗下社区建站通用型程序phpwind,作为一款广受站长欢

NutzWk 3.2.5 最终版,Java 企业级开源开发框架

NutzWk 3.2.5 发布了,NutzWk 是基于国产 Java 开源框架 Nutz 开发的一套集成 Shiro 权限控制.Ehcache缓存.Beetl模板引擎.Quartz.Redis.二维码.pdf等技术的开源企业级开发框架. NutzWk 3.2.5 主要更新内容: 解决虚拟目录部署导致自定义路由失效问题: 解决虚拟目录上传文件路径问题: 解决上传文件权限验证问题(JS): 解决微信多媒体文件相关问题: 添加数据字典及排序功能: 添加微信前台栏目和文章显示可关联微信菜单: 添加测试基

移动硬盘使用中常见问题

移动硬盘现在已经成为常用的存储设备,其便携性非传统的存储设备可以相比,但朋友们在使用过程中,可能遇到多种问题,现在就这些常见的问题,谈谈自己的解决方法,希望对朋友们有帮助. 一.移动硬盘的识别 1.USB接口未开启.这种情况一般出现在一些稍老的机器上.这些机器上虽然有USB接口,但在BIOS中却是默认关闭的.这样即使系统支持也不不能识别. 开启方法:启动电脑时按住DEL键,进入BIOS设置,在"Chipset Features Setup"-"Integrated Perip

3款值得推荐的微信开发开源框架_php实例

微信(英文名:wechat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,微信支持跨通信运营商.跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信.视频.图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件"摇一摇"."漂流瓶"."朋友圈"."公众平台"."语音记事本"等服务插件. 微信提供公众平台.朋友圈.消息推送等功能,用户可以通过