code: public function setColumns($columns)
      {
          $this->_columns = [];
          foreach ($columns as $key => $columnName) {
              if (is_array($columnName)) {
                  $settings = $columnName;
                  $settings['name'] = $key;
              } else {
                  $settings = ['name' => $columnName];
              }
              if (!isset($settings['class'])) {
                  $settings['class'] = '\cascade\web\widgets\grid\columns\Data';
              }
              if (!isset($settings['value'])) {
                  $settings['type'] = 'raw';
                  $settings['value'] = function ($data, $row) use ($settings) {
                      $key = explode('.', $settings['name']);
                      $object = $data;
                      while (count($key) > 1) {
                          $next = array_shift($key);
                          if (is_object($object)) {
                              $object = $object->{$next};
                          } else {
                              $object = $object[$next];
                          }
                      }
                      $key = $key[0];
                      if (is_object($object)) {
                          $model = get_class($object);
                          $fields = $model::getFields($object);
                          if (isset($fields[$key])) {
                              return $fields[$key]->getFormattedValue();
                          }
                      }
  
                      return $object->{$key};
                  };
              }
              if (!isset($settings['type'])) {
                  $settings['type'] = 'raw';
              }
              $column = Yii::createObject($settings, $this);
              $key = $column->name;
  
              if (!$column->visible) {
                  //	continue;
              }
              $this->_columns[$key] = $column;
          }
      }
docs: Set columns.
  
  @param [[@doctodo param_type:columns]] $columns [[@doctodo param_description:columns]]
  
  @return [[@doctodo return_type:setColumns]] [[@doctodo return_description:setColumns]]