/** * {@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; }
public function testGetNonSearchable() { foreach ($this->getterProvider() as $v) { $csvField = new CsvField(array_shift($this->csvData)); $this->assertEquals($v[4], $csvField->getNonSearchable()); } }
/** * 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; }
/** * {@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; }