Exemplo n.º 1
0
 public function up()
 {
     $creator = function (Blueprint $table, $table_name, $definition, $uniques) {
         foreach ($definition->fields as $name => $field) {
             if ($name === 'timestamps') {
                 $table->timestamps();
             } else {
                 $this->field($table, $name, $field);
                 if (isset($field->foreign)) {
                     $this->foreigns[$table_name][$name] = $field->foreign;
                 }
             }
         }
         foreach ($uniques as $unique) {
             $table->unique($unique);
         }
     };
     $creator->bindTo($this);
     foreach ($this->tables as $name => $definition) {
         $builder = $this->db->getSchemaBuilder();
         $this->foreigns[$name] = [];
         if (isset($definition->foreign)) {
             $this->foreigns[$name] = (array) $definition->foreign;
         }
         $uniques = [];
         if (isset($definition->unique)) {
             $uniques = (array) $definition->unique;
         }
         $builder->create($name, function (Blueprint $table) use($creator, $name, $definition, $uniques) {
             $creator($table, $name, $definition, $uniques);
         });
     }
     $log = new JablesTableModel();
     $log->setConnection($this->db->getName());
     $log->data = json_encode($this->tables);
     $log->save();
 }