2021-04-17 19:01:33 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Models;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Arr;
|
2022-03-28 15:58:12 +08:00
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
|
use Nexus\Database\NexusDB;
|
2021-04-17 19:01:33 +08:00
|
|
|
|
|
|
|
|
class Setting extends NexusModel
|
|
|
|
|
{
|
|
|
|
|
protected $fillable = ['name', 'value'];
|
|
|
|
|
|
|
|
|
|
public static function get($name = null)
|
|
|
|
|
{
|
2022-03-28 15:58:12 +08:00
|
|
|
$settings = NexusDB::remember("nexus_settings_in_laravel", 10, function () {
|
2021-04-17 19:01:33 +08:00
|
|
|
$rows = self::query()->get(['name', 'value']);
|
2022-03-28 15:58:12 +08:00
|
|
|
$result = [];
|
2021-04-17 19:01:33 +08:00
|
|
|
foreach ($rows as $row) {
|
|
|
|
|
$value = $row->value;
|
2022-02-21 22:57:06 +08:00
|
|
|
if (!is_null($value)) {
|
|
|
|
|
$arr = json_decode($value, true);
|
|
|
|
|
if (is_array($arr)) {
|
|
|
|
|
$value = $arr;
|
|
|
|
|
}
|
2021-04-17 19:01:33 +08:00
|
|
|
}
|
2022-03-28 15:58:12 +08:00
|
|
|
Arr::set($result, $row->name, $value);
|
2021-04-17 19:01:33 +08:00
|
|
|
}
|
2022-03-28 15:58:12 +08:00
|
|
|
return $result;
|
|
|
|
|
});
|
2021-04-17 19:01:33 +08:00
|
|
|
if (is_null($name)) {
|
|
|
|
|
return $settings;
|
|
|
|
|
}
|
|
|
|
|
return Arr::get($settings, $name);
|
|
|
|
|
}
|
2021-05-15 01:24:44 +08:00
|
|
|
|
2021-04-17 19:01:33 +08:00
|
|
|
}
|