示例#1
0
 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);
     }
 }
示例#2
0
 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);
 }