加载中...

7.7 添加控制器 AlbumController


添加文件:/module/Album/src/Controller/AlbumController.php 具体内容如下:

  1. namespace Album\Controller;
  2. use Zend\Mvc\Controller\AbstractActionController;
  3. use Zend\View\Model\ViewModel;
  4. use Album\Model\Album;
  5. use Album\Form\AlbumForm;
  6. class AlbumController extends AbstractActionController{
  7. protected $albumTalbe;
  8. public function indexAction(){
  9. $paginator = $this->getAlbumTalbe()->fetchAll(true);
  10. $paginator->setCurrentPageNumber((int)$this->params()->fromQuery('page',1));
  11. $paginator->setItemCountPerPage(5);
  12. return new ViewModel(array('paginator'=>$paginator));
  13. }
  14. public function addAction(){
  15. $form = new AlbumForm();
  16. $form->get('submit')->setValue('Add');
  17. $request = $this->getRequest();
  18. if($request->isPost()){
  19. $album = new Album();
  20. $form->setInputFilter($album->getInputFilter());
  21. $form->setData($request->getPost());
  22. if($form->isValid()){
  23. $album->exchangeArray($form->getData());
  24. $this->getAlbumTalbe()->saveAlbum($album);
  25. return $this->redirect()->toRoute('album');
  26. }
  27. }
  28. return array('form'=>$form);
  29. }
  30. public function editAction(){
  31. $id = (Int) $this->params()->fromRoute('id',0);
  32. if(!$id){
  33. return $this->redirect()->toRoute('album',array('action'=>'add'));
  34. }
  35. try{
  36. $album = $this->getAlbumTalbe()->getAlbum($id);
  37. }catch(\Exception $e){
  38. return $this->redirect()->toRoute('album',array('action'=>'index'));
  39. }
  40. $form = new AlbumForm();
  41. $form->bind($album);
  42. $form->get('submit')->setAttribute('value', 'Edit');
  43. $request = $this->getRequest();
  44. if($request->isPost()){
  45. $form->setInputFilter($album->getInputFilter());
  46. $form->setData($request->getPost());
  47. if($form->isValid()){
  48. $this->getAlbumTalbe()->saveAlbum($form->getData());
  49. return $this->redirect()->toRoute('album');
  50. }
  51. }
  52. return array('id'=>$id,'form'=>$form);
  53. }
  54. public function deleteAction(){
  55. $id = (Int) $this->params()->fromRoute('id',0);
  56. if(!$id){
  57. return $this->redirect()->toRoute('album');
  58. }
  59. $request = $this->getRequest();
  60. if($request->isPost()){
  61. $del = $request->getPost('del','No');
  62. if($del=='Yes'){
  63. $id = (Int)$request->getPost('id');
  64. $this->getAlbumTalbe()->deleteAlbum($id);
  65. }
  66. return $this->redirect()->toRoute('album');
  67. }
  68. return array('id'=>$id,'album'=>$this->getAlbumTalbe()->getAlbum($id));
  69. }
  70. public function getAlbumTalbe(){
  71. if(!$this->albumTalbe){
  72. $sm = $this->getServiceLocator();
  73. $this->albumTalbe = $sm->get('Album\Model\AlbumTable');
  74. }
  75. return $this->albumTalbe;
  76. }
  77. }

代码解释:

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(){} 设置数据库网关


还没有评论.