1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Support\Facades\Cache;
- class Config extends Model
- {
- use SoftDeletes;
- public function getOptionValuesAttribute($value)
- {
- if (empty($value)) {
- return [];
- }
- if (is_null(json_decode($value, true))) {
- return $value;
- }
- return json_decode($value, true);
- }
- public function getRuleMessagesAttribute($value)
- {
- return json_decode($value, true)?:[];
- }
- public static function buildConfig()
- {
- $types=ConfigType::where('parent', 0)->get();
- $configs=[];
- foreach ($types as $type) {
- $configs[$type->alias]=[];
- foreach ($type->subTypes as $secondType) {
- $configs[$type->alias][$secondType->alias]=[];
- foreach ($secondType->subTypes as $thirdType) {
- $configs[$type->alias][$secondType->alias][$thirdType->alias]=[];
- foreach ($thirdType->configs as $config) {
- $configs[$type->alias][$secondType->alias][$thirdType->alias][$config->alias]
- =$config->value?:$config->default_value;
- }
- }
- }
- }
- Cache::set('system_config', $configs);
- config($configs);
- return $configs;
- }
- }
|