OptionModel.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. /**
  3. * OptionModel.php UTF-8
  4. * 配置表Model
  5. *
  6. * @date : 2018/1/20 15:31
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : linjiebin <ljb@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\model\option;
  13. use huo\model\common\CommonModel;
  14. class OptionModel extends CommonModel {
  15. protected $name = 'option';
  16. /**
  17. * 获取配置值
  18. *
  19. * @param string $option_name 配置名
  20. * @param int $autoload 是否自动加载 1是 0否
  21. * @param bool $auto_add 是否自动添加
  22. * @param string $auto_add_data 自动添加配置值
  23. *
  24. * @return string
  25. * @throws \think\Exception
  26. * @throws \think\db\exception\DataNotFoundException
  27. * @throws \think\db\exception\ModelNotFoundException
  28. * @throws \think\exception\DbException
  29. */
  30. public function getOptionData($option_name = '', $autoload = 1, $auto_add = false, $auto_add_data = '') {
  31. if (empty($option_name)) {
  32. return '';
  33. }
  34. $_map['option_name'] = trim($option_name);
  35. $_count = $_option_data = $this->where($_map)->count();
  36. if (empty($_count)) {
  37. if ($auto_add) {
  38. $_option_data = [
  39. 'autoload' => $autoload,
  40. 'option_name' => $option_name,
  41. 'option_value' => $auto_add_data
  42. ];
  43. $this->insert($_option_data);
  44. } else {
  45. return null;
  46. }
  47. }else{
  48. $_option_data = $this->where($_map)->find()->toArray();
  49. }
  50. return $_option_data;
  51. }
  52. /**
  53. * 保存配置值
  54. * @param string $option_name
  55. * @param string $option_value
  56. *
  57. * @return bool|string
  58. */
  59. public function saveOptionData($option_name = '',$option_value=''){
  60. if (empty($option_name)) {
  61. return '';
  62. }
  63. $_map['option_name'] = trim($option_name);
  64. $_data['option_value'] = $option_value;
  65. $res = $this->where($_map)->update($_data);
  66. if(false === $res) {
  67. return false;
  68. }
  69. return true;
  70. }
  71. public function getValue($option_name) {
  72. if (empty($option_name)) {
  73. return '';
  74. }
  75. $_map['option_name'] = $option_name;
  76. $_data = $this->where($_map)->value('option_value');
  77. if (!empty($_data)) {
  78. $_data = json_decode($_data, true);
  79. }
  80. return $_data;
  81. }
  82. public function getValues($option_names) {
  83. if (empty($option_names) || !is_array($option_names)) {
  84. return '';
  85. }
  86. $_map['option_name'] = ['in', $option_names];
  87. $_data = $this->where($_map)->column('option_value', 'option_name');
  88. if (!empty($_data)) {
  89. foreach ($_data as $_key => $value) {
  90. if (!empty($value)) {
  91. $_data[$_key] = json_decode($value, true);
  92. }
  93. }
  94. }
  95. return $_data;
  96. }
  97. public function getInfoByName($option_name) {
  98. $_info = $this->where(['option_name' => $option_name])->find();
  99. if (empty($_info)) {
  100. return null;
  101. }
  102. if (is_object($_info)) {
  103. $_info = $_info->toArray();
  104. }
  105. return $_info;
  106. }
  107. }