/** * 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'); }