123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace app\common\model;
- use think\Model;
- class ShopConfig extends Model
- {
- /**
- * 主键
- */
- protected $pk = 'code';
- protected $name = 'shop_config';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- protected $deleteTime = false;
- // 追加属性
- protected $append = [
- ];
- /**
- * 修改器 数据的保存格式
- *
- * @param string|array $value
- * @param array $data
- * @return string
- */
- public function setValueAttr($value, $data)
- {
- switch ($data['type']) {
- case 'array':
- $value = is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value;
- break;
- }
- return $value;
- }
- /**
- * 获取器,选项
- *
- * @param string|array $value
- * @param array $data
- * @return array
- */
- public function getStoreRangeAttr($value, $data)
- {
- return $this->attrFormatJson($value, $data, 'store_range');
- }
- /**
- * 获取器,返回的格式
- *
- * @param string|array $value
- * @param array $data
- * @return array
- */
- public function getValueAttr($value, $data)
- {
- $value = $value ?: ($data['value'] ?? null);
- switch ($data['type']) {
- case 'array':
- $value = $this->attrFormatJson($value, $data, 'value', true);
- break;
- case 'boolean':
- $value = intval($value) ? 1 : 0;
- break;
- case 'int':
- $value = intval($value);
- break;
- case 'float':
- $value = floatval($value);
- break;
- }
- return $value;
- }
- /**
- * 获取器格式化 json
- *
- * @param mix $value
- * @param array $data
- * @param string $field
- * @param bool $return_array
- * @return array|null
- */
- protected function attrFormatJson($value, $data, $field, $return_array = false)
- {
- $value = $value ?: ($data[$field] ?? null);
- $value = $value ? json_decode($value, true) : ($return_array ? [] : $value);
- return $value === false ? $data[$field] : $value;
- }
- }
|