Esempio n. 1
0
 /**
  * @inheritdoc
  */
 public function init()
 {
     parent::init();
     //参数异常判断,方便调试
     if (empty($this->items)) {
         throw new InvalidParamException('属性' . $this->attribute . '的单选框控件的items选项值为空!');
     }
     $this->items = Universal::getCallableValue($this->items);
 }
Esempio n. 2
0
 /**
  * 映射处理事件
  *
  * @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;
     }
 }
Esempio n. 3
0
 /**
  * 映射处理事件
  *
  * @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} . '的值没有设置!');
     }
 }
Esempio n. 4
0
 /**
  * @inheritdoc
  */
 public function init()
 {
     parent::init();
     if ($this->items === null) {
         throw new InvalidConfigException('映射搜索组件缺少items选项值参数!是否书写错误?');
     }
     $this->items = Universal::getCallableValue($this->items);
 }