/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     // validate request
     $validateProjectCategory = Validator::make($request->get('ProjectCategory'), ProjectCategory::$rules);
     $validationMessages = [];
     if ($validateProjectCategory->fails() or count($validationMessages) > 0) {
         $validationMessages = array_merge_recursive($validateProjectCategory->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 ProjectCategory
         $projectCategory = new ProjectCategory();
         $projectCategory->key = Common::createKeyURL($request->input('ProjectCategory.name'));
         $projectCategory->parent_id = $request->input('ProjectCategory.parent_id');
         $projectCategory->priority = $request->input('ProjectCategory.priority');
         $projectCategory->name = $request->input('ProjectCategory.name');
         $projectCategory->summary = $request->input('ProjectCategory.summary');
         $projectCategory->meta_description = $request->input('ProjectCategory.meta_description');
         $projectCategory->meta_keywords = $request->input('ProjectCategory.meta_keywords');
         $projectCategory->active = $request->input('ProjectCategory.active');
         $projectCategory->created_by = $user->name;
         $projectCategory->updated_by = $user->name;
         $projectCategory->save();
         // save attachments
         if ($request->input('ProjectCategory.attachments') != "") {
             $requestAttachments = explode(',', $request->input('ProjectCategory.attachments'));
             $attachments = [];
             foreach ($requestAttachments as $key => $value) {
                 array_push($attachments, new Attachment(['entry_id' => $projectCategory->id, 'table_name' => 'project_categories', 'path' => $value, 'priority' => 0, 'active' => 1]));
             }
             if (count($attachments) > 0) {
                 $projectCategory->attachments()->saveMany($attachments);
             }
         }
     });
     return redirect()->route('admin.projectcategories.index');
 }