where('parent_id', self::query()->where('key', $key)->value('id'))->pluck('name', 'id'); } public static function byKey($key) { // return Cache::remember("cache:model:setting:bykey:" . $key, Carbon::now()->addHours(1), function () use ($key) { return Setting::query()->where('key', $key)->value('value'); // }); } public static function byIdGetName($id) { return self::query()->where('id', $id)->where('parent_id', '>', 0)->value('name'); } public function setKeyAttribute($val) { $this->attributes['key'] = strtoupper($val); } public function parent() { return $this->belongsTo(self::class, 'parent_id', 'id'); } public function getParentNameAttribute() { return self::query()->where('id', $this->attributes['parent_id'])->value('name'); } public function getValueAttribute($val) { if (!isset($this->attributes['type'])) { return $val; } $type = $this->attributes['type']; switch ($type) { case 0: return $val; break; case 1: return Resource::query()->where('id', $val)->select(['id', 'url', 'path'])->first(); break; } return $val; } }