public function onModelListGetModelFields()
 {
     $columnNames = ModelModel::getModelFields($this->getPluginCode(), Input::get('model_class'));
     $result = [];
     foreach ($columnNames as $columnName) {
         $result[] = ['title' => $columnName, 'value' => $columnName];
     }
     return ['responseData' => ['options' => $result]];
 }
 public function onModelFormGetModelFields()
 {
     $columnNames = ModelModel::getModelFields($this->getPluginCode(), Input::get('model_class'));
     $asPlainList = Input::get('as_plain_list');
     $result = [];
     foreach ($columnNames as $columnName) {
         if (!$asPlainList) {
             $result[] = ['title' => $columnName, 'value' => $columnName];
         } else {
             $result[$columnName] = $columnName;
         }
     }
     return ['responseData' => ['options' => $result]];
 }
 public function listModelColumnNames()
 {
     $modelClass = $this->getModelClassDesignTime();
     $key = md5('builder-global-model-list-' . $modelClass);
     $cached = Cache::get($key, false);
     if ($cached !== false && ($cached = @unserialize($cached)) !== false) {
         return $cached;
     }
     $pluginCodeObj = PluginCode::createFromNamespace($modelClass);
     $modelClassParts = explode('\\', $modelClass);
     // The full class name is already validated in PluginCode::createFromNamespace()
     $modelClass = array_pop($modelClassParts);
     $columnNames = ModelModel::getModelFields($pluginCodeObj, $modelClass);
     $result = [];
     foreach ($columnNames as $columnName) {
         $result[$columnName] = $columnName;
     }
     Cache::put($key, serialize($result), 1);
     return $result;
 }