with('sites', $sites); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('site.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'site_id' => 'required|unique:site', 'site_nom' => 'required', 'site_contact' => 'required', 'site_logo' => 'required|image|mimes:png', 'site_rcs' => 'required', 'site_libelle' => 'required' ]); $site = new Site(); $datas = $this->saveImg($request); $site->site_id = $datas['site_id']; $site->site_nom = $datas['site_nom']; $site->site_contact = $datas['site_contact']; $site->site_logo = $datas['site_logo']; $site->site_rcs = $datas['site_rcs']; $site->site_libelle = $datas['site_libelle']; $site->save(); // --- ADD all new sites to all SuperAdmin $admins = User::where(['roles' => 'superadmin'])->get(); foreach ($admins as $admin) { $admin->sites()->save($site); } // --- MAJ Selecteur marques $marques = Auth::user()->sites; $submarques = $marques->map(function($marque){ return $marque->only(['id', 'site_nom', 'site_id', 'site_logo']); }); session()->put('marques', $submarques); return view('site.edit', ['site' => $site]); } /** * Show the form for editing the specified resource. * * @param \App\Site $site * @return \Illuminate\Http\Response */ public function edit(Site $site) { return view('site.edit')->with('site', $site); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Site $site * @return \Illuminate\Http\Response */ public function update(Request $request, Site $site) { if ($site->update($this->saveImg($request))) { session()->flash('update_ok', 'Le site a bien été modifié'); } else { session()->flash('update_nok', 'Erreur lors de l\'enregistrement'); } return redirect()->route('site.edit', ['site' => $site]); } /** * @param \Illuminate\Http\Request $request * * @return array */ private function saveImg(Request $request) { $datas = collect($request->all()); // Enregistrer le fichiersi il a changé if ($request->site_logo) { $path = $request->site_logo->store('images/logos'); $path = str_replace('public/', '', $path); $datas->put('site_logo', $path); } else { $datas->put('site_logo', $request->input('site_logo_hidden')); } return $datas->toArray(); } }