When trying to use this kind of construct $builder->integer('userId')->columnName('user_id')->index('user_id_token_index')->nullable(); Fluent is giving me the error that there is no column named userId on the database. Obvious, because I changed the column name and I'm not using the class's field name. So I tried a workaround that I don't know if it's the correct form to implement it, but solved the issue. Bellow the code snippets:
Field.php
/**
* @param string|null $name
*
* @return Field
*/
public function index($name = null)
{
if (!isset($this->fieldBuilder->getMapping()['columnName'])){
$columnName = $this->getName();
} else {
$columnName = $this->fieldBuilder->getMapping()['columnName'];
}
$index = new Index(
$this->metaDatabuilder,
[$columnName]//$this->getName()]
);
if ($name !== null) {
$index->name($name);
}
$this->callbackAndQueue($index);
return $this;
}
FieldBuilder.php, added a method to get the mapping information
public function getMapping() {
return $this->mapping;
}
Another workaround is to do like this on the mapping file:
When trying to use this kind of construct $builder->integer('userId')->columnName('user_id')->index('user_id_token_index')->nullable(); Fluent is giving me the error that there is no column named userId on the database. Obvious, because I changed the column name and I'm not using the class's field name. So I tried a workaround that I don't know if it's the correct form to implement it, but solved the issue. Bellow the code snippets:
Field.php
FieldBuilder.php, added a method to get the mapping information
Another workaround is to do like this on the mapping file: