protected function getDefaultTableName() { $modelName = get_called_class(); if (static::$structured) { $structureNamespace = static::$structureNamespace ?: Swilab::getBaseNamespace() . 'Models\\'; $modelName = str_replace('\\', '', trim(substr($modelName, strlen($structureNamespace)), '\\') . '\\'); return Str::convertSnake($modelName); } elseif (false !== ($pos = strrpos($modelName, '\\'))) { return Str::convertSnake(substr($modelName, $pos + 1)); } else { return Str::convertSnake($modelName); } }
public static function create(DatabaseInterface $database, $name) { $colums = new StructureBag(); $indexs = new StructureBag(); $options = array(); foreach ($database->getRawColumns($name) as $rawColumn) { $colums->append(Column::createUsingRawData($rawColumn)); } foreach (Index::mergeRawIndexs($database->getRawIndexs($name)) as $rawIndex) { $indexs->append(Index::createUsingRawData($rawIndex)); } foreach ($database->getRawOptions($name) as $rawOptionName => $rawOptionValue) { switch ($rawOptionName) { case 'Engine': case 'Collation': $options[lcfirst(Str::convertCamel($rawOptionName))] = $rawOptionValue; break; default: // Ignore other options } } return new static($name, $colums, $indexs, $options); }