| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\SoftDeletes;use Illuminate\Support\Facades\Cache;/** * App\Models\Config * * @property int $id * @property int $type_id config_types.id * @property string $name 配置名称 * @property string $alias 别名 * @property string $value 配置值 * @property int $listorder 排序 * @property string $input_type 组件类型 * @property string $default_value 默认值 * @property string|null $option_values 提供的选择项:json对象{"name":"value"} * @property string|null $tips 帮助信息 * @property string|null $placeholder placeholder * @property string|null $rules 验证规则 * @property string|null $rule_messages 验证错误信息json对象 * @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $updated_at * @property string|null $deleted_at * @method static bool|null forceDelete() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config newQuery() * @method static \Illuminate\Database\Query\Builder|\App\Models\Config onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config query() * @method static bool|null restore() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereAlias($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereDefaultValue($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereInputType($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereListorder($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereOptionValues($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config wherePlaceholder($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereRuleMessages($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereRules($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereTips($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereTypeId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Config whereValue($value) * @method static \Illuminate\Database\Query\Builder|\App\Models\Config withTrashed() * @method static \Illuminate\Database\Query\Builder|\App\Models\Config withoutTrashed() * @mixin \Eloquent */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;    }}
 |