1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace 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;
- }
- }
|