/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     // validate request
     $validateClass = Validator::make($request->get('NewClass'), NewClass::$rules);
     $validationMessages = [];
     if ($validateClass->fails() or count($validationMessages) > 0) {
         $validationMessages = array_merge_recursive($validateClass->messages()->toArray(), $validationMessages);
         return redirect()->back()->withErrors($validationMessages)->withInput();
     }
     // sure execute success, if not success rollback
     DB::transaction(function () use($request) {
         $user = $request->user();
         // insert Class
         $class = new NewClass();
         $class->code = $request->input('NewClass.code');
         $class->name = $request->input('NewClass.name');
         $class->for_class = $request->input('NewClass.for_class');
         $class->subject_id = $request->input('NewClass.subject_id');
         $class->address = $request->input('NewClass.address');
         $class->salary = $request->input('NewClass.salary');
         $class->time = $request->input('NewClass.time');
         $class->day_number = $request->input('NewClass.day_number');
         $class->required = $request->input('NewClass.required');
         $class->contactinfo = $request->input('NewClass.contactinfo');
         $class->status = $request->input('NewClass.status');
         $class->priority = $request->input('NewClass.priority');
         $class->is_publish = $request->input('NewClass.is_publish');
         $class->created_by = $user->name;
         $class->updated_by = $user->name;
         $class->save();
     });
     return redirect()->route('admin.newclass.index');
 }