public function store(Request $request, FormDefinition $formDef)
 {
     $this->validate($request, ['name' => 'required|max:255|string', 'email' => 'required|email']);
     $fields = new Collection();
     $errors = new Collection();
     $request->session()->forget('field_validation_errors');
     $request->session()->put('field_validation_errors', []);
     if ($formDef->submissions()->where('email', $request->input('email'))->get()->count() > 0) {
         $errors->push("A submission already exists for the e-mail you used: " . $request->input("email"));
     }
     foreach ($formDef->fields()->get() as $field) {
         $options = json_decode($field->options);
         if ($options->required && !$request->has($field->field_id) && ($field->type != 'Checkbox' && $field->type != 'File')) {
             $errors->push("Missing required field named " . $field->name . " with ID " . $field->field_id);
         } elseif ($options->required && $field->type == "File" && !$request->hasFile($field->field_id)) {
             $errors->push("Missing required file field named " . $field->name . " with ID " . $field->field_id);
         } elseif (!$request->has($field->field_id) && $field->type != 'File') {
             $fields->put($field->field_id, null);
         } else {
             if ($this->verifyField($field, $request->input($field->field_id), $request)) {
                 if ($field->type != 'File') {
                     $fields->put($field->field_id, $request->input($field->field_id));
                 } else {
                     $fname = "file_" . str_random(32) . "." . $request->file($field->field_id)->getClientOriginalExtension();
                     $file = $request->file($field->field_id)->move('../storage/app/form/' . $formDef->id, $fname);
                     $fields->put($field->field_id, $fname);
                 }
             } else {
                 $errors->push("Invalid value for field named \"" . $field->name . "\" with ID  " . $field->field_id);
             }
         }
     }
     if ($errors->count() > 0) {
         //return response()->json(["The submission was REJECTED and errors follow",$errors],422);
         return redirect()->back()->withErrors($errors);
         //return view('formdefinitions.display', compact('fields', 'errors'));
     }
     $request->session()->forget('form_validation_errors');
     $submission = new Submission(["form_definition_id" => $formDef->id, "name" => $request->input('name'), "email" => $request->input('email'), "password" => null, "submitted" => Carbon::now(), "status" => 'Reviewing', "options" => $fields->toJson()]);
     $submission->save();
     //return response()->json(["The submission was accepted and follows",$submission],200);
     return view('formdefinitions.accepted', compact('formDef', 'submission'));
 }