后台管理控制器

插件创建成功后会自动生成插件目录,插件控制器中会自动生成一个WebController.class.php,在此文件中可以进行插件的后台功能的开发。

插件的响应规则、配置参数、封面入口都可以直接在info.php中通过配置来实现,WebController主要用来处理业务导航配置的各项功能。

例如留言板插件,首先在info.php中配置一个管理留言的业务导航,并把插件的默认入口设置为留言管理页面:

  1. 'config' => array(
  2. 'index_url' => U('/IdouGuestbook/web/messages'),
  3. 'menu' => 1,
  4. 'menu_list' => array(
  5. 'messages' => '留言管理'
  6. ),
  7. ),

然后在后台管理控制器中对留言数据进行增删改查:

  1. <?php
  2. namespace Addons\IdouGuestbook\Controller;
  3. use Mp\Controller\AddonsController;
  4. /**
  5. * 留言板后台控制器
  6. * @author 艾逗笔<765532665@qq.com>
  7. */
  8. class WebController extends AddonsController {
  9. /**
  10. * 留言管理
  11. * @author 艾逗笔<765532665@qq.com>
  12. */
  13. public function messages() {
  14. $model = get_addon_model('idou_guestbook_list');
  15. $this->setModel($model)
  16. ->common_lists();
  17. }
  18. /**
  19. * 通用删除数据方法
  20. * @author 艾逗笔<765532665@qq.com>
  21. */
  22. public function delete() {
  23. $this->setModel('idou_guestbook_list')
  24. ->setDeleteMap(array('id'=>I('id'),'mpid'=>get_mpid()))
  25. ->setDeleteSuccessUrl(create_addon_url('messages'))
  26. ->common_delete();
  27. }
  28. /**
  29. * 编辑留言
  30. * @author 艾逗笔<765532665@qq.com>
  31. */
  32. public function edit() {
  33. $this->addSubNav('编辑留言', '', 'active')
  34. ->setModel('idou_guestbook_list')
  35. ->addFormField('nickname', '留言者昵称', 'text')
  36. ->addFormField('content', '留言内容', 'textarea')
  37. ->addFormField('create_time', '留言时间', 'text')
  38. ->addFormField('status', '留言状态', 'radio', array('options'=>array(0=>'未审核',1=>'审核通过',2=>'审核不通过')))
  39. ->setFindMap(array('mpid'=>get_mpid(),'id'=>I('get.id')))
  40. ->setEditMap(array('mpid'=>get_mpid(),'id'=>I('get.id')))
  41. ->setEditSuccessUrl(create_addon_url('messages'))
  42. ->common_edit();
  43. }
  44. }
  45. ?>

后台管理控制器WebController中通过调用视图工具来对数据进行增删改查,用最少的代码实现最多的功能。