Setting.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Facades\Artisan;
  5. class Setting extends Model
  6. {
  7. protected $table = 'settings';
  8. protected $primaryKey = 'name';
  9. protected $fillable = ['name', 'value'];
  10. public $timestamps = false;
  11. public static function loadAll()
  12. {
  13. $settings = self::all();
  14. // print_r($settings);
  15. }
  16. /*查询某个配置信息*/
  17. public static function get($name,$default='')
  18. {
  19. $setting = self::where('name','=',$name)->first();
  20. if($setting){
  21. return $setting->value;
  22. }
  23. return $default;
  24. }
  25. public static function set($name , $value)
  26. {
  27. self::updateOrCreate(['name'=>$name],['value'=>$value]);
  28. }
  29. /**
  30. * 设置env配置文件
  31. * @param $params
  32. */
  33. public static function setEnvParams($params){
  34. if(!$params){
  35. return false;
  36. }
  37. $envPath = app()->environmentFilePath();
  38. $envString = file_get_contents($envPath);
  39. foreach ($params as $key => $value){
  40. $envKey = strtoupper($key);
  41. $oldValue = env($envKey,null);
  42. $keyString = "{$envKey}=";
  43. $oldEnvString = "{$key}={$oldValue}";
  44. if(str_contains($oldValue,' ')){
  45. $oldEnvString = "{$envKey}='$oldValue'";
  46. }
  47. $newEnvString = "{$envKey}=$value";
  48. if(str_contains($value,' ')){
  49. $newEnvString = "{$envKey}='$value'";
  50. }
  51. if(str_contains($envString,$keyString)){
  52. $envString = str_replace($oldEnvString,$newEnvString,$envString);
  53. }else{
  54. $envString .= $newEnvString."\n";
  55. }
  56. }
  57. file_put_contents($envPath,$envString);
  58. return true;
  59. }
  60. }