protected function fakeRecord($tableInfo, $index)
{
$record = [];
foreach ($tableInfo as $field => $fieldInfo) {
if (empty($fieldInfo['type'])) {
continue;
}
$insert = '';
switch ($fieldInfo['type']) {
case 'biginteger':
case 'integer':
case 'float':
case 'decimal':
$insert = $this->config->sequence_start + $index;
break;
case 'string':
case 'binary':
$insert = $this->config->faker->realText();
if (!empty($fieldInfo['options']['limit'])) {
$insert = substr($insert, 0, (int) $fieldInfo['options']['limit']);
}
break;
case 'timestamp':
$insert = time();
break;
case 'datetime':
$insert = date('Y-m-d H:i:s');
break;
case 'date':
$insert = date('Y-m-d');
break;
case 'time':
$insert = date('H:i:s');
break;
case 'boolean':
$insert = true;
break;
case 'text':
$maxNbChars = !empty($fieldInfo['options']['limit']) ? $fieldInfo['options']['limit'] : $this->config->text_size_limit;
$maxNbChars = $maxNbChars > $this->config->text_size_limit ? $this->config->text_size_limit : $maxNbChars;
$insert = $this->config->faker->text($maxNbChars);
break;
}
$record[$field] = $insert;
}
return $record;
}