澳门新葡萄京官网注册PHP开源开发框架ZendFramework使用中常见问题说明及解决方案_php实例_脚本之家

从入门PHP的第二个星期,就开是接触Zend
framework了,可是,后来就放了。当时没有做下笔记,接着就什么都忘了,回悔啊,现在重新学过吧!今天要看的是控制器,这玩意太大,我也只是看看皮毛,由浅入深吧!下面是一个简单的控制器:class
helloController extends Zend_Controller_Action{ function indexAction()
{ echo hi, this is my helloworld; } function testAction() { $var1 =
$this-_getParam(var); echo hello.$book_id; } function
__call($action,$args){ $this-_redirect(”/hello”);
}}运行结果是这样的: 会显示 hellowrold 时,会显示 hi, this is my
helloworld其实我想说明的也就上面分色的两点:红:在Zend中,我有接收参数,不管是
post 还是 get 的,只要用 如:$this-_getParam(var);的形式即可,final
protected function _getParam($paramName, $default = null)
是控制器的私有方法,它还要可是带第二个参数,作为默认值,当没有得到你想要的参数时,返回这个默认值。蓝:这个函数的目的为是,当访问的方法不存在时,自己转到一个地址

MVC 代码书写:控制器代码书写:

复制代码 代码如下: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;

}function addAction(){//如果是POST过来的值.就增加.否则就显示增加页面

}}?>

控制当中写内容:

复制代码
代码如下:$this->view->word=”ggg”;$this->view->render;—->index.html
echo $this->word;

application->config.ini
[general]db.adapter=PDO_MYSQLdb.config.host=localhostdb.config.username=rootdb.config.password=db.config.dbname=think_zw

配置文件引入到framework里面去

复制代码
代码如下://配置数据库参数,并连接数据库$config=new
Zend_Config_Ini(‘./application/config/config.ini’,null,
true);Zend_Registry::set;$dbAdapter=Zend_Db::factory($config->general->db->adapter,$config->general->db->config->toArray;$dbAdapter->query;Zend_Db_Table::setDefaultAdapter;Zend_Registry::set(‘dbAdapter’,$dbAdapter);

单一入口模式:localhost/index/add/访问index模块下的add方法function
addAction(){}默认访问为index模块下的index方法

再建立一个模块model里面的message.php

复制代码 代码如下:

模块实例化:

复制代码 代码如下:function
indexAction(){$message=new message();//实例化数据库类

//获取数据库内容$this->view->messages=$message->fetchAll;

echo $this->view->render;//显示模版}

messages as $message): ?>

*************修改和删除数据

复制代码 代码如下:kkll

index.phtml里面加上

复制代码
代码如下:编辑删除

添加一个新的方法:edit.phtml

复制代码 代码如下:function editAction(){

$message = new Message();$db = $message->getAdapter();

if(strtolower($_SERVER[‘REQUEST_METHOD’])==’post’){$id =
$this->_request->getPost;$cid =
$this->_request->getPost;$title =
$this->_request->getPost;

$set = array(‘cid’=>$cid,’title’=>$title);$where =
$db->quoteInto;//更新数据$message->update;unset;echo
‘修改数据成功!返回’;}else{$id
= $this->_request->getParam;$this->view->messages =
$message->fetchAll;echo $this->view->render;}}

function delAction(){$message = new
Message$this->_request->getParam;

if{$where = ‘id = ‘ . $id;$message->delete;}echo
‘删除数据成功!返回’;}

异常出现:

复制代码 代码如下:Fatal error: Uncaught
exception ‘Zend_Controller_Dispatcher_Exception’ with message
‘Invalid controller specified ‘ in

解决办法:在index.php中的

复制代码 代码如下:$frontController
=Zend_Controller_Front::getInstance();后加上$frontController->setParam(‘useDefaultControllerAlways’,
true);

*******id/3 等于以前的?id=3

发表评论

电子邮件地址不会被公开。 必填项已用*标注