/** * @inheritdoc */ public function init() { parent::init(); //参数异常判断,方便调试 if (empty($this->items)) { throw new InvalidParamException('属性' . $this->attribute . '的单选框控件的items选项值为空!'); } $this->items = Universal::getCallableValue($this->items); }
/** * 映射处理事件 * * @param string $default 为空时的默认值 * @param Callable $items 映射数据,映射数据键值对应属性值,如下: * * ```php * [ * 1 => '启用', * 0 => '禁用', * ] * ``` * * @param array $colors 颜色数据,可以给映射的值加上颜色标示,事例如下: * * ```php * [ * 1 => 'green', * 0 => 'red', * ] * ``` * * @return string 返回映射后的值 */ public static function mapEvent($attribute, array $args = []) { static $items = null; $model = static::$model; $value = $model[$attribute]; if (isset($args['default']) && empty($value)) { return static::emptyEvent($attribute, $args); } if (!isset($items[$attribute]) || $items[$attribute] === null) { $items[$attribute] = ArrayHelper::getValue($args, 'items', []); $items[$attribute] = Universal::getCallableValue($items[$attribute]); } if (isset($items[$attribute][$value])) { return isset($args['colors']) && isset($args['colors'][$value]) ? static::colorWrapper($args['colors'][$value], $items[$attribute][$value]) : $items[$attribute][$value]; } else { return $value; } }
/** * 映射处理事件 * * @param string $default 为空时的默认值 * @param Callable $mapData 映射数据,映射数据键值对应属性值,如下 * * ```php * [ * 1 => '启用', * 0 => '禁用', * ] * ``` * * @return string 返回映射后的值 */ public static function mapEvent($attribute, array $args = []) { static $mapData = null; $model = static::$model; if (empty($model->{$attribute})) { return static::emptyEvent($attribute, $args); } if ($mapData === null) { $mapData = ArrayHelper::getValue($args, 'mapData', []); $mapData = Universal::getCallableValue($mapData); } if (isset($mapData[$model->{$attribute}])) { return $mapData[$model->{$attribute}]; } else { throw new InvalidValueException('映射字段' . $model->{$attribute} . '的值没有设置!'); } }
/** * @inheritdoc */ public function init() { parent::init(); if ($this->items === null) { throw new InvalidConfigException('映射搜索组件缺少items选项值参数!是否书写错误?'); } $this->items = Universal::getCallableValue($this->items); }