插件模型

在插件开发过程中,可以把一些数据处理和业务逻辑的处理工作封装到模型中,在控制器调用模型来完成业务需求。可以这样在控制器中调用模型:

  1. /**
  2. * 处理留言
  3. * @author 艾逗笔<765532665@qq.com>
  4. */
  5. public function deal_message() {
  6. $GuestbookList = D('Addons://IdouGuestbook/IdouGuestbookList');
  7. C('TOKEN_ON', false);
  8. if (!$GuestbookList->create()) {
  9. $return['errcode'] = 0;
  10. $return['errmsg'] = $GuestbookList->getError();
  11. } else {
  12. if (I('id')) {
  13. $GuestbookList->save();
  14. } else {
  15. $GuestbookList->add();
  16. }
  17. $return['errcode'] = 1;
  18. $return['errmsg'] = '留言成功';
  19. }
  20. $return['data'] = I('post.');
  21. $this->ajaxReturn($return);
  22. }

插件模型可以这样写:

  1. <?php
  2. namespace Addons\IdouGuestbook\Model;
  3. use Think\Model;
  4. /**
  5. * 留言数据管理模型
  6. * @author 艾逗笔<765532665@qq.com>
  7. */
  8. class IdouGuestbookListModel extends Model {
  9. /**
  10. * 自动验证
  11. * @author 艾逗笔<765532665@qq.com>
  12. */
  13. protected $_validate = array(
  14. array('nickname', 'require', '用户昵称不能为空'),
  15. array('content', 'require', '留言内容不能为空')
  16. );
  17. /**
  18. * 自动完成
  19. * @author 艾逗笔<765532665@qq.com>
  20. */
  21. protected $_auto = array(
  22. array('mpid', 'get_mpid', 1, 'function'),
  23. array('openid', 'get_openid', 1, 'function'),
  24. array('create_time', 'time', 1, 'function')
  25. );
  26. }
  27. ?>