where('meta_name', $name)->first(); if (!$setting) { if (is_array($value)) { $value = json_encode($value); } Meta::create([ 'element_id' => $id, 'meta_name' => $name, 'meta_value' => $value ]); } } public function update($id, $name, $value, $create = true) { $setting = Meta::where('element_id', $id)->where('meta_name', $name)->first(); if ($setting) { if (is_array($value)) { $value = json_encode($value); } $setting->meta_value = $value; $setting->update(); } else { if ($create) { $this->add($id, $name, $value); } } } public function getValue($id, $name, $default = null, $convert = false) { $setting = Meta::where('element_id', $id)->where('meta_name', $name)->first(); if ($setting) { if ($convert) { $value = json_encode($setting->value); if (json_last_error() === JSON_ERROR_NONE) { return $value; } } return $setting->meta_value; } return $default; } public function delete($id, $name) { $setting = Meta::where('element_id', $id)->where('name', $name)->first(); if ($setting) { $setting->delete(); } } }