/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     // validate request
     $validateTeachTime = Validator::make($request->get('TeachTime'), TeachTime::$rules);
     $validationMessages = [];
     if ($validateTeachTime->fails() or count($validationMessages) > 0) {
         $validationMessages = array_merge_recursive($validateTeachTime->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 TeachTime
         $teachTime = new TeachTime();
         $teachTime->key = $request->input('TeachTime.key');
         $teachTime->type = $request->input('TeachTime.type');
         $teachTime->priority = $request->input('TeachTime.priority');
         $teachTime->is_publish = $request->input('TeachTime.is_publish');
         $teachTime->created_by = $user->name;
         $teachTime->updated_by = $user->name;
         $teachTime->save();
         $teachTime->save();
     });
     return redirect()->route('admin.teachtimes.index');
 }