processFieldInput() публичный статический Метод

public static processFieldInput ( $fieldInput, $htmlType, $validations, $fieldSettings = [] )
Пример #1
0
 private function addTimestamps()
 {
     $this->inputFields[] = GeneratorFieldsInputUtil::processFieldInput('created_at:timestamp', '', '', ['searchable' => false, 'fillable' => false, 'inForm' => false, 'inIndex' => false]);
     $this->inputFields[] = GeneratorFieldsInputUtil::processFieldInput('updated_at:timestamp', '', '', ['searchable' => false, 'fillable' => false, 'inForm' => false, 'inIndex' => false]);
 }
 public static function generateFieldsFromTable($tableName)
 {
     $schema = DB::getDoctrineSchemaManager();
     $platform = $schema->getDatabasePlatform();
     $platform->registerDoctrineTypeMapping('enum', 'string');
     $columns = $schema->listTableColumns($tableName);
     $primaryKey = static::getPrimaryKeyFromTable($tableName);
     $timestamps = static::getTimestampFieldNames();
     $defaultSearchable = config('infyom.laravel_generator.options.tables_searchable_default', false);
     $fields = [];
     foreach ($columns as $column) {
         switch ($column->getType()->getName()) {
             case 'integer':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'integer', $column);
                 $type = 'number';
                 break;
             case 'smallint':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'smallInteger', $column);
                 $type = 'number';
                 break;
             case 'bigint':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'bigInteger', $column);
                 $type = 'number';
                 break;
             case 'boolean':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'boolean');
                 $type = 'text';
                 break;
             case 'datetime':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'dateTime');
                 $type = 'date';
                 break;
             case 'datetimetz':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'dateTimeTz');
                 $type = 'date';
                 break;
             case 'date':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'date');
                 $type = 'date';
                 break;
             case 'time':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'time');
                 $type = 'text';
                 break;
             case 'decimal':
                 $fieldInput = self::generateDecimalInput($column);
                 $type = 'number';
                 break;
             case 'float':
                 $fieldInput = self::generateFloatInput($column);
                 $type = 'number';
                 break;
             case 'string':
                 $fieldInput = self::generateStringInput($column);
                 $type = 'text';
                 break;
             case 'text':
                 $fieldInput = self::generateTextInput($column);
                 $type = 'textarea';
                 break;
             default:
                 $fieldInput = self::generateTextInput($column);
                 $type = 'text';
         }
         if (strtolower($column->getName()) == 'password') {
             $type = 'password';
         } elseif (strtolower($column->getName()) == 'email') {
             $type = 'email';
         }
         if (!empty($fieldInput)) {
             $field = GeneratorFieldsInputUtil::processFieldInput($fieldInput, $type, '', ['searchable' => $defaultSearchable]);
             $columnName = $column->getName();
             if ($columnName === $primaryKey) {
                 $field['primary'] = true;
                 $field['inFrom'] = false;
                 $field['inIndex'] = false;
                 $field['fillable'] = false;
                 $field['searchable'] = false;
             } elseif (in_array($columnName, $timestamps)) {
                 $field['fillable'] = false;
                 $field['searchable'] = false;
                 $field['inFrom'] = true;
                 $field['inIndex'] = true;
             }
             $fields[] = $field;
         }
     }
     return $fields;
 }
Пример #3
0
 private function getInputFromConsole()
 {
     $this->commandInfo('Specify fields for the model (skip id & timestamp fields, we will add it automatically)');
     $this->commandInfo('Enter "exit" to finish');
     $this->inputFields[] = GeneratorFieldsInputUtil::processFieldInput("id:integer", "", "", false, false);
     while (true) {
         $fieldInputStr = $this->commandObj->ask('Field: (field_name:field_database_type)', '');
         if (empty($fieldInputStr) || $fieldInputStr == false || $fieldInputStr == 'exit') {
             break;
         }
         if (!GeneratorFieldsInputUtil::validateFieldInput($fieldInputStr)) {
             $this->commandError('Invalid Input. Try again');
             continue;
         }
         if ($this->commandType == CommandData::$COMMAND_TYPE_SCAFFOLD or $this->commandType == CommandData::$COMMAND_TYPE_SCAFFOLD_API) {
             $htmlType = $this->commandObj->ask('Enter field html input type (text): ', 'text');
         } else {
             $htmlType = '';
         }
         $validations = $this->commandObj->ask('Enter validations: ', false);
         $searchable = $this->commandObj->ask('Is Searchable (y/N): ', false);
         $validations = $validations == false ? '' : $validations;
         if ($searchable) {
             $searchable = strtolower($searchable) == 'y' ? true : false;
         }
         $this->inputFields[] = GeneratorFieldsInputUtil::processFieldInput($fieldInputStr, $htmlType, $validations, $searchable);
     }
 }
 public static function generateFieldsFromTable($tableName)
 {
     $schema = DB::getDoctrineSchemaManager();
     $platform = $schema->getDatabasePlatform();
     $platform->registerDoctrineTypeMapping('enum', 'string');
     $columns = $schema->listTableColumns($tableName);
     $fields = [];
     foreach ($columns as $column) {
         switch ($column->getType()->getName()) {
             case 'integer':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'integer', $column);
                 $type = 'number';
                 break;
             case 'smallint':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'smallInteger', $column);
                 $type = 'number';
                 break;
             case 'bigint':
                 $fieldInput = self::generateIntFieldInput($column->getName(), 'bigInteger', $column);
                 $type = 'number';
                 break;
             case 'boolean':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'boolean');
                 $type = 'text';
                 break;
             case 'datetime':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'dateTime');
                 $type = 'date';
                 break;
             case 'datetimetz':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'dateTimeTz');
                 $type = 'date';
                 break;
             case 'date':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'date');
                 $type = 'date';
                 break;
             case 'time':
                 $fieldInput = self::generateSingleFieldInput($column->getName(), 'time');
                 $type = 'text';
                 break;
             case 'decimal':
                 $fieldInput = self::generateDecimalInput($column);
                 $type = 'number';
                 break;
             case 'float':
                 $fieldInput = self::generateFloatInput($column);
                 $type = 'number';
                 break;
             case 'string':
                 $fieldInput = self::generateStringInput($column);
                 $type = 'text';
                 break;
             case 'text':
                 $fieldInput = self::generateTextInput($column);
                 $type = 'textarea';
                 break;
             default:
                 $fieldInput = self::generateTextInput($column);
                 $type = 'text';
         }
         if (strtolower($column->getName()) == 'password') {
             $type = 'password';
         } elseif (strtolower($column->getName()) == 'email') {
             $type = 'email';
         }
         if (!empty($fieldInput)) {
             $fields[] = GeneratorFieldsInputUtil::processFieldInput($fieldInput, $type, '', false);
         }
     }
     return $fields;
 }