コード例 #1
0
 /**
  * {@inheritDoc}
  */
 public function fieldToDb(CsvField $csvField)
 {
     $dbFields[] = new DbField($csvField->getName(), static::DB_FIELD_TYPE, $csvField->getLimit(), $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique());
     // set precision and scale provided by csv migration decimal field type definition
     foreach ($dbFields as &$dbField) {
         // skip if scale and precision are not defined
         if (empty($dbField->getLimit())) {
             continue;
         }
         // skip if scale and precision are not defined correctly
         if (false === strpos($dbField->getLimit(), '.')) {
             continue;
         }
         list($precision, $scale) = explode('.', $dbField->getLimit());
         $options = $dbField->getOptions();
         $options['precision'] = $precision;
         $options['scale'] = $scale;
         $dbField->setOptions($options);
     }
     return $dbFields;
 }
コード例 #2
0
 public function testGetUnique()
 {
     foreach ($this->getterProvider() as $v) {
         $csvField = new CsvField(array_shift($this->csvData));
         $this->assertEquals($v[5], $csvField->getUnique());
     }
 }
コード例 #3
0
 /**
  * {@inheritDoc}
  */
 public function fieldToDb(CsvField $csvField)
 {
     $dbFields = [];
     foreach ($this->_fields as $suffix => $options) {
         $handler = new $options['handler']();
         $subField = clone $csvField;
         $subField->setName($csvField->getName() . '_' . $suffix);
         if (isset($options['limit'])) {
             $subField->setLimit($options['limit']);
         }
         $dbFields = array_merge($dbFields, $handler->fieldToDb($subField));
     }
     return $dbFields;
 }
コード例 #4
0
 /**
  * Method responsible for converting csv field instance to database field instance.
  *
  * @param  \CsvMigrations\FieldHandlers\CsvField $csvField CsvField instance
  * @return array list of DbField instances
  */
 public function fieldToDb(CsvField $csvField)
 {
     $dbFields[] = new DbField($csvField->getName(), static::DB_FIELD_TYPE, null, $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique());
     return $dbFields;
 }
コード例 #5
0
 /**
  * {@inheritDoc}
  * In addtion, it sets the limit to Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG
  */
 public function fieldToDb(CsvField $csvField)
 {
     $dbFields[] = new DbField($csvField->getName(), $csvField->getType(), MysqlAdapter::TEXT_LONG, $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique());
     return $dbFields;
 }
コード例 #6
0
 /**
  * Method responsible for converting csv field instance to database field instance.
  *
  * @param  \CsvMigrations\FieldHandlers\CsvField $csvField CsvField instance
  * @return array list of DbField instances
  */
 public function fieldToDb(CsvField $csvField)
 {
     $handler = $this->_getHandler($csvField->getType());
     $fields = $handler->fieldToDb($csvField);
     return $fields;
 }