Пример #1
0
 public function generateSchemas()
 {
     if ($this->type == 'demo') {
         $this->loader->setFixturesPath();
     }
     $tables = isset($_POST['tables']) ? (array) $_POST['tables'] : array();
     $columns = isset($_POST['columns']) ? (array) $_POST['columns'] : array();
     $relations = isset($_POST['relations']) ? (array) $_POST['relations'] : array();
     $ids = isset($_POST['id']) ? (array) $_POST['id'] : array();
     $primaries = isset($_POST['primary']) ? (array) $_POST['primary'] : array();
     $classes = isset($_POST['class']) ? (array) $_POST['class'] : array();
     $sqls = isset($_POST['sql']) ? (array) $_POST['sql'] : array();
     $orders = isset($_POST['order']) ? (array) $_POST['order'] : array();
     $images = isset($_POST['image']) ? (array) $_POST['image'] : array();
     $nulls = isset($_POST['null']) ? (array) $_POST['null'] : array();
     $entities = array();
     foreach ($tables as $table) {
         $config = array();
         if (isset($ids[$table]) && $ids[$table]) {
             $config['id'] = $ids[$table];
         }
         if (isset($primaries[$table]) && $primaries[$table]) {
             $config['primary'] = $primaries[$table];
         }
         if (isset($classes[$table]) && $classes[$table]) {
             $config['class'] = $classes[$table];
         }
         if (isset($sqls[$table]) && $sqls[$table]) {
             $config['sql'] = $sqls[$table];
         }
         if (isset($orders[$table]) && $orders[$table]) {
             $config['ordersql'] = $orders[$table];
         }
         if (isset($images[$table]) && $images[$table]) {
             $config['image'] = $images[$table];
         }
         if (isset($nulls[$table]) && $nulls[$table]) {
             $config['null'] = $nulls[$table];
         }
         $fields = array();
         if (isset($columns[$table])) {
             foreach ($columns[$table] as $column) {
                 $fields[$column] = array();
                 if (isset($relations[$table][$column]['check'])) {
                     $fields[$column]['relation'] = $relations[$table][$column];
                 }
             }
         }
         $entities[$table] = array('config' => $config, 'fields' => $fields);
     }
     foreach ($entities as $entity => $info) {
         $this->loader->generateEntitySchema($entity, $info['fields'], $info['config']);
     }
     $this->errors = $this->loader->getErrors();
 }