get(); return $badges; } public function store($request) { $data = $request->except('_token'); $data['image'] = $request->file('image')->store('badges','public'); $data['categories'] = $request->categories != null ? array_map('intval', $request->categories) : null; $data['video_types'] = $request->video_types != null ? array_map('intval', $request->video_types) : null; $badge = new JobRequestBadge(); $badge->fill($data); $badge->order = JobRequestBadge::count() + 1; $badge->save(); return true; } public function update($request) { $data = $request->except('_token'); $badge = JobRequestBadge::find($data['id']); if ($badge) { if($request->has('image')){ $data['image'] = $request->file('image')->store('badges','public'); } $data['categories'] = $request->categories != null ? array_map('intval', $request->categories) : null; $data['video_types'] = $request->video_types != null ? array_map('intval', $request->video_types) : null; $badge->fill($data); $badge->update(); return true; } return false; } public function setActiveState($data) { $badge = JobRequestBadge::find($data['id']); if ($badge) { $badge->active = $data['active']; $badge->update(); return true; } return false; } public function destroy($id) { $badge = JobRequestBadge::find($id); if ($badge) { //lets remove first the badge on the category JobRequestCategory::where('badge_id', $badge->id) ->update([ 'badge_id' => null ]); //lets remove the badge on all staffs $staffs = Staff::whereJsonContains('badges', [$badge->id])->get(); foreach ($staffs as $key => $staff) { $badges = $staff->badges; if (($key = array_search($badge->id, $badges)) !== false) { unset($badges[$key]); } $staff->badges = array_values($badges); $staff->save(); } $badge->delete(); return true; } return false; } }