添加文件:`/module/Album/src/Controller/AlbumController.php` 具体内容如下:
~~~
namespace Album\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Album\Model\Album;
use Album\Form\AlbumForm;
class AlbumController extends AbstractActionController{
protected $albumTalbe;
public function indexAction(){
$paginator = $this->getAlbumTalbe()->fetchAll(true);
$paginator->setCurrentPageNumber((int)$this->params()->fromQuery('page',1));
$paginator->setItemCountPerPage(5);
return new ViewModel(array('paginator'=>$paginator));
}
public function addAction(){
$form = new AlbumForm();
$form->get('submit')->setValue('Add');
$request = $this->getRequest();
if($request->isPost()){
$album = new Album();
$form->setInputFilter($album->getInputFilter());
$form->setData($request->getPost());
if($form->isValid()){
$album->exchangeArray($form->getData());
$this->getAlbumTalbe()->saveAlbum($album);
return $this->redirect()->toRoute('album');
}
}
return array('form'=>$form);
}
public function editAction(){
$id = (Int) $this->params()->fromRoute('id',0);
if(!$id){
return $this->redirect()->toRoute('album',array('action'=>'add'));
}
try{
$album = $this->getAlbumTalbe()->getAlbum($id);
}catch(\Exception $e){
return $this->redirect()->toRoute('album',array('action'=>'index'));
}
$form = new AlbumForm();
$form->bind($album);
$form->get('submit')->setAttribute('value', 'Edit');
$request = $this->getRequest();
if($request->isPost()){
$form->setInputFilter($album->getInputFilter());
$form->setData($request->getPost());
if($form->isValid()){
$this->getAlbumTalbe()->saveAlbum($form->getData());
return $this->redirect()->toRoute('album');
}
}
return array('id'=>$id,'form'=>$form);
}
public function deleteAction(){
$id = (Int) $this->params()->fromRoute('id',0);
if(!$id){
return $this->redirect()->toRoute('album');
}
$request = $this->getRequest();
if($request->isPost()){
$del = $request->getPost('del','No');
if($del=='Yes'){
$id = (Int)$request->getPost('id');
$this->getAlbumTalbe()->deleteAlbum($id);
}
return $this->redirect()->toRoute('album');
}
return array('id'=>$id,'album'=>$this->getAlbumTalbe()->getAlbum($id));
}
public function getAlbumTalbe(){
if(!$this->albumTalbe){
$sm = $this->getServiceLocator();
$this->albumTalbe = $sm->get('Album\Model\AlbumTable');
}
return $this->albumTalbe;
}
}
~~~
代码解释:
public function indexAction(){} album默认访问action,也是album列表action
public function addAction(){} 添加album 的 action
public function editAction(){} 编辑修改album的action
public function deleteAction(){} 删除album 的action
lpublic function getAlbumTalbe(){} 设置数据库网关
- 序言
- 第1章 Zend Framework2 简介
- 1.1 Zend Framework2 简介
- 1.2 下载安装
- 1.3 搭建开发环境
- 第2章 创建ZF2项目
- 2.1 新建一个项目
- 2.2 配置网站
- 2.3 伪静态 .htaccess文件
- 2.4 添加启动/入口文件
- 2.5 添加全局配置文件
- 2.6 添加自动加载文件 init_autoloader.php
- 2.7 IndexController 控制器
- 第3章 创建模块文件
- 3.1 Module 文件
- 3.2 module.config 文件
- 3.2.1 router 路由配置
- 3.2.2 controllers控制器配置
- 3.2.3 view_manager 视图管理器
- 3.2.4 service_manager 服务管理器
- 3.2.5 translator 翻译器
- 3.2.6 navigation 导航条
- 第4章 创建控制器
- 4.1 控制器简介
- 4.2 新建控制器
- 4.3 添加控制器的Action
- 第5章 创建视图模板
- 5.1 创建模板
- 5.2 模板配置
- 5.3 编写布局和错误异常模板
- 5.4 编写Action 对应的模板文件
- 5.5 访问 IndexAction
- 第6章 创建模型
- 6.1 ORM 对象映射法
- 6.2 使用分页导航
- 6.3 自定模型
- 6.4 章节总结
- 第7章 实例应用
- 7.1 建立Album 模块
- 7.2 添加模块文件
- 7.3 添加模块配置文件
- 7.4 创建数据表 album
- 7.5 添加模型文件
- 7.6 添加表单 AlbumForm
- 7.7 添加控制器 AlbumController
- 7.8 添加模板文件
- 第8章 用户认证
- 8.1 建立数据表
- 8.2 新建认证类
- 8.3 引用认证类
- 第9章 结束语