model = $model; } /** * Returns a setting from the database. * * @param string $name * @param string|null $default * * @return string|null */ public function get($name, $default = null) { if (!$this->settings) { $this->settings = $this->model->all()->lists('value', 'name'); } if (!empty($this->settings[$name])) { return $this->settings[$name]; } return $default; } /** * Creates or updates a setting value. * * @param string $name * @param string|null $value * * @return void */ public function set($name, $value) { if ($value === null) { $this->model->where('name', $name)->delete(); if ($this->settings && isset($this->settings[$name])) { unset($this->settings[$name]); } } else { $this->model->updateOrCreate(compact('name'), compact('value')); if ($this->settings) { $this->settings[$name] = $value; } } } }