* @version : HUOSDK 8.0 */ namespace huo\model\option; use huo\model\common\CommonModel; class OptionModel extends CommonModel { protected $name = 'option'; /** * 获取配置值 * * @param string $option_name 配置名 * @param int $autoload 是否自动加载 1是 0否 * @param bool $auto_add 是否自动添加 * @param string $auto_add_data 自动添加配置值 * * @return string * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getOptionData($option_name = '', $autoload = 1, $auto_add = false, $auto_add_data = '') { if (empty($option_name)) { return ''; } $_map['option_name'] = trim($option_name); $_count = $_option_data = $this->where($_map)->count(); if (empty($_count)) { if ($auto_add) { $_option_data = [ 'autoload' => $autoload, 'option_name' => $option_name, 'option_value' => $auto_add_data ]; $this->insert($_option_data); } else { return null; } }else{ $_option_data = $this->where($_map)->find()->toArray(); } return $_option_data; } /** * 保存配置值 * @param string $option_name * @param string $option_value * * @return bool|string */ public function saveOptionData($option_name = '',$option_value=''){ if (empty($option_name)) { return ''; } $_map['option_name'] = trim($option_name); $_data['option_value'] = $option_value; $res = $this->where($_map)->update($_data); if(false === $res) { return false; } return true; } public function getValue($option_name) { if (empty($option_name)) { return ''; } $_map['option_name'] = $option_name; $_data = $this->where($_map)->value('option_value'); if (!empty($_data)) { $_data = json_decode($_data, true); } return $_data; } public function getValues($option_names) { if (empty($option_names) || !is_array($option_names)) { return ''; } $_map['option_name'] = ['in', $option_names]; $_data = $this->where($_map)->column('option_value', 'option_name'); if (!empty($_data)) { foreach ($_data as $_key => $value) { if (!empty($value)) { $_data[$_key] = json_decode($value, true); } } } return $_data; } public function getInfoByName($option_name) { $_info = $this->where(['option_name' => $option_name])->find(); if (empty($_info)) { return null; } if (is_object($_info)) { $_info = $_info->toArray(); } return $_info; } }