SystemConfig.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Models;
  3. use Dcat\Admin\Traits\HasDateTimeFormatter;
  4. use Illuminate\Database\Eloquent\Model;
  5. /**
  6. * Class System_Config
  7. * @package App
  8. */
  9. class SystemConfig extends Model
  10. {
  11. use HasDateTimeFormatter;
  12. //
  13. protected $table = "system_config";
  14. protected $guarded = [];
  15. static $groups = [
  16. 'ali_config'=>'阿里云',
  17. 'wechat_config'=>'微信',
  18. 'system_config'=>'系统设置',
  19. ];
  20. const Field_textarea = 0,Filed_richText = 1,Field_Json = 2,
  21. Field_Switch = 3,Field_Time = 4,Field_File = 5,
  22. Field_Checkbox = 6,Field_Json_Array = 7;
  23. private static $_fieldType = [
  24. self::Field_textarea =>'纯文本',
  25. self::Filed_richText =>'富文本',
  26. self::Field_Json =>'JSON',
  27. self::Field_Switch =>'开关',
  28. self::Field_Time =>'时间',
  29. self::Field_File =>'文件',
  30. self::Field_Checkbox =>'选择框',
  31. self::Field_Json_Array =>'数组JSON',
  32. ];
  33. protected static function getType(){
  34. return self::$_fieldType;
  35. }
  36. /**
  37. * @param String $group
  38. * @param String $key
  39. * @param String $default
  40. * @return array|String
  41. */
  42. public static function get(string $group, string $key = '', string $default = "")
  43. {
  44. $query = self::where('group', $group);
  45. if ($key) {
  46. $res = $query->where('key', $key)->first(['value'])->value ?? $default;
  47. return $res;
  48. } else {
  49. $res = $query->get(['key', 'value']);
  50. $arr = [];
  51. foreach ($res as $index => $item) {
  52. $arr[$item['key']] = $item['value'];
  53. }
  54. return $arr;
  55. }
  56. }
  57. /**
  58. * @param String $group
  59. * @param String $key
  60. * @param String $value
  61. * @return int
  62. */
  63. public static function set(string $group, string $key, string $value)
  64. {
  65. return self::where([['group', $group], ['key', $key]])->update(['value' => $value]);
  66. }
  67. }