ConfigModel.class.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Admin\Model;
  3. use Common\Model\ModelModel;
  4. /**
  5. * 配置模型
  6. *
  7. */
  8. class ConfigModel extends ModelModel
  9. {
  10. /**
  11. * 数据库表名
  12. *
  13. */
  14. protected $tableName = 'admin_config';
  15. /**
  16. * 自动验证规则
  17. *
  18. */
  19. protected $_validate = array(
  20. array('group', 'require', '配置分组不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  21. array('type', 'require', '配置类型不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  22. array('name', 'require', '配置名称不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  23. array('name', '1,32', '配置名称长度为1-32个字符', self::EXISTS_VALIDATE, 'length', self::MODEL_BOTH),
  24. array('name', '', '配置名称已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
  25. array('title', 'require', '配置标题必须填写', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  26. array('title', '1,32', '配置标题长度为1-32个字符', self::EXISTS_VALIDATE, 'length', self::MODEL_BOTH),
  27. array('title', '', '配置标题已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
  28. );
  29. /**
  30. * 自动完成规则
  31. *
  32. */
  33. protected $_auto = array(
  34. array('create_time', 'time', self::MODEL_INSERT, 'function'),
  35. array('update_time', 'time', self::MODEL_BOTH, 'function'),
  36. array('status', '1', self::MODEL_BOTH),
  37. );
  38. /**
  39. * 获取配置列表与ThinkPHP配置合并
  40. * @return array 配置数组
  41. *
  42. */
  43. public function lists()
  44. {
  45. $map['status'] = array('eq', 1);
  46. $list = $this->where($map)->field('name,value,type')->select();
  47. foreach ($list as $key => $val) {
  48. switch ($val['type']) {
  49. case 'array':
  50. $config[$val['name']] = \Util\Str::parseAttr($val['value']);
  51. break;
  52. case 'checkbox':
  53. $config[$val['name']] = explode(',', $val['value']);
  54. break;
  55. default:
  56. $config[$val['name']] = $val['value'];
  57. break;
  58. }
  59. }
  60. return $config;
  61. }
  62. }