get(); return view('bo.employees.index',compact('employees','sectors')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $s = BusinessSector::orderBy('order', 'ASC')->get(); return view('bo.employees.create', compact('s')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $lastname = $request->lastname; $firstname = $request->firstname; $video = $request->video; $photo = $request->photo; $request->validate([ 'lastname' => 'required|string|max:255', 'firstname' => 'required|string|max:255', 'job_title' => 'max:255', 'video' => 'max:255', 'photo' => 'required|image|mimes:jpeg,png,jpg|max:2048|dimensions:width=100,height=100', ]); $imageName = Str::slug($firstname."-".$lastname) . '-jeusselin.' . $photo->extension(); $photo->move(public_path('uploads/images/profiles/' . date('Y') . '/' . date('m')), $imageName); $e = new Employees(); $e->civility = $request->civility; $e->lastname = $lastname; $e->firstname = $firstname; $e->job_title = $request->job_title; $e->video = $video; $e->photo = 'uploads/images/profiles/' . date('Y') . '/' . date('m') . '/' . $imageName; $e->save(); //prise en charge de la liaison avec les secteurs $associatedSectors = $request->associated_sectors; $e->businessSectors()->sync($associatedSectors); return redirect()->route('bo.employees.index'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $e = Employees::findOrFail($id); $s = BusinessSector::orderBy('order', 'ASC')->get(); $seIds = []; foreach ($e->businessSectors as $sector_employee) { $seIds[] = $sector_employee->id; } return view('bo.employees.edit', compact('e','s'))->with('seIds', $seIds); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $lastname = $request->lastname; $firstname = $request->firstname; $video = $request->video; $photo = $request->file('photo'); $request->validate([ 'lastname' => 'required|string|max:255', 'firstname' => 'required|string|max:255', 'job_title' => 'max:255', 'video' => 'max:255', ]); if($photo !== NULL) { $request->validate([ 'photo' => 'image|mimes:jpeg,png,jpg|max:2048|dimensions:width=100,height=100', ]); } $e = Employees::findOrFail($id); if($photo !== NULL) { if(file_exists(public_path() . '/' . $e->photo)) unlink(public_path() . '/' . $e->photo); $imageName = Str::slug($firstname."-".$lastname) . '-jeusselin.' . $photo->extension(); $photo->move(public_path('uploads/images/profiles/' . date('Y') . '/' . date('m')), $imageName); } $e->civility = $request->civility; $e->lastname = $lastname; $e->firstname = $firstname; $e->job_title = $request->job_title; $e->video = $video; if($photo !== NULL) { $e->photo = 'uploads/images/profiles/' . date('Y') . '/' . date('m') . '/' . $imageName; } $e->save(); //prise en charge de la liaison avec les secteurs $associatedSectors = $request->associated_sectors; $e->businessSectors()->sync($associatedSectors); return redirect()->route('bo.employees.index'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $e = Employees::findOrFail($id); if(file_exists(public_path() . '/' . $e->photo)) unlink(public_path() . '/' . $e->photo); //prise en charge de la liaison avec les secteurs $e->delete(); return redirect()->route('bo.employees.index'); } }