'Volaille', 'OEUF' => 'Oeuf', 'LAPIN' => 'Lapin']; public function index($type) { $b = Breeders::where('type', strtoupper($type))->get(); return view('bo.breeders.index') ->with('b', $b) ->with('type', $type); } public function create() { return view('bo.breeders.create')->with('types', $this->types); } public function store(Request $request) { // Partie éleveur $display = $request->display === null ? 0 : 1; $breederCode = $request->breeder_code; $firstName = $request->first_name; $lastName = $request->last_name; $slug = strtolower($lastName . '-' . $firstName . '-' . time()); $picture = $request->picture; $postalCode = $request->postal_code; $town = $request->town; $testimony = $request->testimony; $type = $request->type; $status = 0; $request->validate([ 'breeder_code' => 'required', 'first_name' => 'required|max:150', 'last_name' => 'required|max:150', 'picture' => 'required|image|mimes:jpeg,png,jpg|max:2048', 'postal_code' => 'required|max:20', 'testimony' => 'required|max:1000', ]); $imageName = Str::slug($lastName) . '-' . Str::slug($firstName) . '-le-gaulois.' . $picture->extension(); $picture->move(public_path('uploads/images/eleveurs/' . date('Y') . '/' . date('m')), $imageName); // Partie site de l'éleveur $latitude = $request->latitude; $longitude = $request->longitude; $geoType = $request->geo_type; $audit = $request->audit; $validBreeder = $request->valid_breeder; $validMarketingDate = $request->valid_marketing_date; $presentationType = $request->presentation_type; $videoLink = $request->video_link; $picture1 = $request->picture1; $picture2 = $request->picture2; $picture3 = $request->picture3; $request->validate([ 'latitude' => 'required|max:150', 'longitude' => 'required|max:150', ]); if ($presentationType === "1") { $request->validate([ 'video_link' => 'required|max:255' ]); } elseif ($presentationType === "2") { $request->validate([ 'picture1' => 'image|mimes:jpeg,png,jpg|max:2048', 'picture2' => 'image|mimes:jpeg,png,jpg|max:2048', 'picture3' => 'image|mimes:jpeg,png,jpg|max:2048', ]); if ($picture1 !== null) { $imageNameSite1 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site1-elevage-le-gaulois.' . $picture1->extension(); $picture1->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite1); } if ($picture2 !== null) { $imageNameSite2 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site2-elevage-le-gaulois.' . $picture2->extension(); $picture2->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite2); } if ($picture3 !== null) { $imageNameSite3 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site3-elevage-le-gaulois.' . $picture3->extension(); $picture3->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite3); } } // Partie code INUAV $inuavs = $request->inuavs; // Ajout des différents objets en base // Eleveur $b = new Breeders(); $b->display = $display; $b->breeder_code = $breederCode; $b->first_name = $firstName; $b->last_name = $lastName; $b->slug = $slug; $b->picture = 'uploads/images/eleveurs/' . date('Y') . '/' . date('m') . '/' . $imageName; $b->postal_code = $postalCode; $b->town = $town; $b->testimony = $testimony; $b->type = $type; $b->status = $status; // Site d'élevage $s = new BreedersSites(); $s->latitude = $latitude; $s->longitude = $longitude; $s->geo_type = $geoType; $s->audit = $audit; $s->valid_breeder = $validBreeder; $s->valid_marketing_date = $validMarketingDate; $s->presentation_type = $presentationType; if ($presentationType === "1") { $s->video_link = $videoLink; } elseif ($presentationType === "2") { if ($picture1 !== null) { $s->picture1 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite1; } if ($picture2 !== null) { $s->picture2 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite2; } if ($picture3 !== null) { $s->picture3 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite3; } } // Ajout en BDD $b->save(); $s->breeder_id = $b->id; $s->save(); if ($inuavs !== null) { array_filter($inuavs); foreach ($inuavs as $inuav) { $i = new BreedersInuav(); $i->inuav = $inuav; $i->breeder_id = $b->id; $i->save(); } } return redirect()->route('bo.breeders.content', $type); } public function edit($id) { $b = Breeders::findOrFail($id); return view('bo.breeders.edit') ->with('b', $b) ->with('types', $this->types); } public function update(Request $request, $id) { // Partie éleveur $display = $request->display === null ? 0 : 1; $breederCode = $request->breeder_code; $firstName = $request->first_name; $lastName = $request->last_name; $slug = strtolower($lastName . '-' . $firstName . '-' . time()); $picture = $request->picture; $postalCode = $request->postal_code; $town = $request->town; $testimony = $request->testimony; $type = $request->type; $status = $request->status === null ? 0 : 1; $request->validate([ 'breeder_code' => 'required', 'first_name' => 'required|max:150', 'last_name' => 'required|max:150', 'postal_code' => 'required|max:20', 'testimony' => 'required|max:1000', ]); if ($picture !== null) { $request->validate([ 'picture' => 'required|image|mimes:jpeg,png,jpg|max:2048', ]); } // Partie site de l'éleveur $latitude = $request->latitude; $longitude = $request->longitude; $geoType = $request->geo_type; $audit = $request->audit; $validBreeder = $request->valid_breeder; $validMarketingDate = $request->valid_marketing_date; $presentationType = $request->presentation_type; $videoLink = $request->video_link; $picture1 = $request->picture1; $picture2 = $request->picture2; $picture3 = $request->picture3; $request->validate([ 'latitude' => 'required|max:150', 'longitude' => 'required|max:150', ]); if ($type === 1) { $request->validate([ 'videoLink' => 'required|max:255' ]); } elseif ($type === 2) { $request->validate([ 'picture1' => 'image|mimes:jpeg,png,jpg|max:2048', 'picture2' => 'image|mimes:jpeg,png,jpg|max:2048', 'picture3' => 'image|mimes:jpeg,png,jpg|max:2048', ]); } // Partie code INUAV $inuavs = $request->inuavs; $b = Breeders::findOrFail($id); // Gestion des images if ($picture !== null) { if ($b->picture !== null && file_exists(public_path() . '/' . $b->picture)) { unlink(public_path() . '/' . $b->picture); } $imageName = Str::slug($lastName) . '-' . Str::slug($firstName) . '-le-gaulois.' . $picture->extension(); $picture->move(public_path('uploads/images/eleveurs/' . date('Y') . '/' . date('m')), $imageName); } if ($presentationType === "2") { // Ajout des images seulement si le type de présentation est "Photos" if ($picture1 !== null) { if ($b->site->picture1 !== null && file_exists(public_path() . '/' . $b->site->picture1)) { unlink(public_path() . '/' . $b->site->picture1); } $imageNameSite1 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site1-elevage-le-gaulois.' . $picture1->extension(); $picture1->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite1); } if ($picture2 !== null) { if ($b->site->picture2 !== null && file_exists(public_path() . '/' . $b->site->picture2)) { unlink(public_path() . '/' . $b->site->picture2); } $imageNameSite2 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site2-elevage-le-gaulois.' . $picture2->extension(); $picture2->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite2); } if ($picture3 !== null) { if ($b->site->picture3 !== null && file_exists(public_path() . '/' . $b->site->picture3)) { unlink(public_path() . '/' . $b->site->picture3); } $imageNameSite3 = Str::slug($lastName) . '-' . Str::slug($firstName) . '-site3-elevage-le-gaulois.' . $picture3->extension(); $picture3->move(public_path('uploads/images/elevages/' . date('Y') . '/' . date('m')), $imageNameSite3); } } else { // Sinon, suppression des photos puisqu'elles ne seront plus utilisées if ($b->site->picture1 !== null && file_exists(public_path() . '/' . $b->site->picture1)) { unlink(public_path() . '/' . $b->site->picture1); } if ($b->site->picture2 !== null && file_exists(public_path() . '/' . $b->site->picture2)) { unlink(public_path() . '/' . $b->site->picture2); } if ($b->site->picture3 !== null && file_exists(public_path() . '/' . $b->site->picture3)) { unlink(public_path() . '/' . $b->site->picture3); } } // Ajout des différents objets en base // Eleveur $b->display = $display; $b->breeder_code = $breederCode; $b->first_name = $firstName; $b->last_name = $lastName; $b->slug = $slug; if ($picture !== null) { $b->picture = 'uploads/images/eleveurs/' . date('Y') . '/' . date('m') . '/' . $imageName; } $b->postal_code = $postalCode; $b->town = $town; $b->testimony = $testimony; $b->type = $type; $b->status = $status; // Site d'élevage $s = $b->site; $s->latitude = $latitude; $s->longitude = $longitude; $s->geo_type = $geoType; $s->audit = $audit; $s->valid_breeder = $validBreeder; $s->valid_marketing_date = $validMarketingDate; $s->presentation_type = $presentationType; if ($presentationType === "1") { $s->video_link = $videoLink; $s->picture1 = null; $s->picture2 = null; $s->picture3 = null; } elseif ($presentationType === "2") { $s->video_link = null; if ($picture1 !== null) { $s->picture1 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite1; } if ($picture2 !== null) { $s->picture2 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite2; } if ($picture3 !== null) { $s->picture3 = 'uploads/images/elevages/' . date('Y') . '/' . date('m') . '/' . $imageNameSite3; } } // Ajout en BDD $b->inuavs()->delete(); if ($inuavs !== null) { array_filter($inuavs); foreach ($inuavs as $inuav) { $b->inuavs()->create([ 'inuav' => $inuav, ]); } } $s->save(); $b->save(); return redirect()->route('bo.breeders.edit', $b->id)->with('success', 'Enregistré !'); } public function destroy($id) { $b = Breeders::findOrFail($id); if (file_exists(public_path() . '/' . $b->picture)) { unlink(public_path() . '/' . $b->picture); } if ($b->site->picture1 !== null && file_exists(public_path() . '/' . $b->site->picture1)) { unlink(public_path() . '/' . $b->site->picture1); } if ($b->site->picture2 !== null && file_exists(public_path() . '/' . $b->site->picture2)) { unlink(public_path() . '/' . $b->site->picture2); } if ($b->site->picture3 !== null && file_exists(public_path() . '/' . $b->site->picture3)) { unlink(public_path() . '/' . $b->site->picture3); } $i = BreedersInuav::where('breeder_id', $id); $i->delete(); $s = BreedersSites::where('breeder_id', $id); $s->delete(); $b->delete(); return redirect()->route('bo.breeders.content', 'volaille'); } }