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