/**
  * Build migration fields
  * @return string
  */
 private function buildFields()
 {
     $migrationTypes = FieldsDescriber::migration();
     $used = [];
     $fields = '$table->increments("id");' . "\r\n";
     foreach ($this->fields as $field) {
         // Check if there is no duplication for radio and checkbox
         if (!in_array($field->title, $used)) {
             // Generate our migration line
             $migrationLine = str_replace(['$FIELDNAME$', '$STATE$', '$RELATIONSHIP$'], [$field->title, $field->default == 'true' ? 1 : 0, $field->relationship_name], $migrationTypes[$field->type]);
             $fields .= '            ';
             // Add formatting space to the migration
             $fields .= '$table->' . $migrationLine . ";\r\n";
             if ($field->type == 'relationship') {
                 $used[$field->relationship_name] = $field->relationship_name;
             } else {
                 $used[$field->title] = $field->title;
             }
         }
     }
     $fields .= '            ';
     // Add formatting space to the migration
     $fields .= '$table->timestamps();';
     if ($this->soft == 1) {
         $fields .= "\r\n";
         $fields .= '            ';
         // Add formatting space to the migration
         $fields .= '$table->softDeletes();';
     }
     return $fields;
 }
 /**
  * Build migration fields
  * @return string
  */
 private function buildFields()
 {
     $migrationTypes = FieldsDescriber::migration();
     $used = [];
     $fields = '$table->increments("id");' . "\r\n";
     foreach ($this->fields as $field) {
         // Check if there is no duplication for radio and checkbox
         if (!in_array($field->title, $used)) {
             // Generate our migration line
             $migrationLine = str_replace(['$FIELDNAME$', '$STATE$', '$RELATIONSHIP$'], [$field->title, $field->default == 'true' ? 1 : 0, $field->relationship_name], $migrationTypes[$field->type]);
             $fields .= '            ';
             // Add formatting space to the migration
             if ($field->type == 'enum') {
                 $values = '';
                 $field->enum = explode(',', $field->enum);
                 foreach ($field->enum as $val) {
                     // Remove first whitespace
                     if (strpos(substr($val, 0, 1), ' ') !== false) {
                         $len = strlen($val);
                         $val = substr($val, 1, $len);
                     }
                     $values .= '"' . $val . '"';
                     if ($val != last($field->enum)) {
                         $values .= ', ';
                     }
                 }
                 $migrationLine = str_replace('$VALUES$', $values, $migrationLine);
             }
             $fields .= '$table->' . $migrationLine . ";\r\n";
             if ($field->type == 'relationship') {
                 $used[$field->relationship_name] = $field->relationship_name;
             } else {
                 $used[$field->title] = $field->title;
             }
         }
     }
     $fields .= '            ';
     // Add formatting space to the migration
     $fields .= '$table->timestamps();';
     if ($this->soft == 1) {
         $fields .= "\r\n";
         $fields .= '            ';
         // Add formatting space to the migration
         $fields .= '$table->softDeletes();';
     }
     return $fields;
 }
 /**
  * Show new crud creation page
  * @return \Illuminate\View\View
  */
 public function create()
 {
     $fieldTypes = FieldsDescriber::types();
     $fieldValidation = FieldsDescriber::validation();
     $defaultValuesCbox = FieldsDescriber::default_cbox();
     $crudsSelect = Crud::lists('title', 'id');
     // Get columns for relationship
     $models = [];
     foreach (Crud::all() as $crud) {
         // We are having a default User model
         if ($crud->title == 'User' && $crud->is_crud == 0) {
             $tableName = 'users';
         } else {
             $tableName = strtolower($crud->name);
         }
         $models[$crud->id] = Schema::getColumnListing($tableName);
     }
     return view("qa::cruds.create", compact('fieldTypes', 'fieldValidation', 'defaultValuesCbox', 'crudsSelect', 'models'));
 }
 /**
  * Show new menu creation page
  * @return \Illuminate\View\View
  */
 public function createCrud()
 {
     $fieldTypes = FieldsDescriber::types();
     $fieldValidation = FieldsDescriber::validation();
     $defaultValuesCbox = FieldsDescriber::default_cbox();
     $menusSelect = Menu::lists('title', 'id');
     $parentsSelect = Menu::where('menu_type', 2)->lists('title', 'id')->prepend('-- no parent --', 'null');
     // Get columns for relationship
     $models = [];
     foreach (Menu::all() as $menu) {
         // We are having a default User model
         if ($menu->title == 'User' && $menu->is_menu == 0) {
             $tableName = 'users';
         } else {
             $tableName = strtolower($menu->name);
         }
         $models[$menu->id] = Schema::getColumnListing($tableName);
     }
     return view("qa::menus.createCrud", compact('fieldTypes', 'fieldValidation', 'defaultValuesCbox', 'menusSelect', 'models', 'parentsSelect'));
 }