public function searchablecontact(Request $request) { $type = 1; $tri = 'none'; $actif = 'contact'; $contact = new Contact(); if (isset($request->nom) && !empty($request->nom)) { $contact = new Contact(); $contact->setSearchable(['columns' => ['nom_contact' => 10, 'prenoms_contact' => 10]]); $query = $request->nom; $mode = 'nom'; $tri = 'none'; $contact = $contact->search($query)->where('etat', 1)->orderBy('nom_contact', 'asc')->get(); } elseif ($request->tel && !empty($request->tel)) { $contact->setSearchable(['columns' => ['tel_contact' => 10]]); $query = $request->tel; $mode = 'tel'; $tri = 'none'; $contact = $contact->search($query)->where('etat', 1)->orderBy('nom_contact', 'asc')->get(); } elseif ($request->adresse && !empty($request->adresse)) { $contact->setSearchable(['columns' => ['adresse_contact' => 30]]); $query = $request->adresse; $mode = 'adresse'; $tri = 'none'; $contact = $contact->search($query)->where('etat', 1)->orderBy('nom_contact', 'asc')->get(); } // Tri des résultats de la recherche contact if (isset($_GET['sort'])) { $query = $_GET['query']; // Tri sur recherche par nom if ($_GET['mode'] == 'nom') { $mode = 'nom'; if ($_GET['sort'] == 'pays_clt') { $tri = 'pays'; $contact->setSearchable(['columns' => ['nom_contact' => 10, 'prenoms_contact' => 10]]); $contact = $contact->search($query)->where('etat', 1)->get(); foreach ($contact as $key => $value) { var_dump($value->nom_contact . ' ' . $value->prenoms_contact); } dd(); return view('contact.contact', compact('actif', 'contact', 'type', 'tri', 'query', 'mode')); } elseif ($_GET['sort'] == 'ville_siege_clt') { $tri = "ville"; } elseif ($_GET['sort'] == 'statut') { $tri = "client"; } elseif ($_GET['sort'] == 'nom_clt') { $tri = "alpha"; } elseif ($_GET['sort'] == 'created_at') { $tri = "ajout"; } elseif ($_GET['sort'] == 'updated_at') { $tri = "modif"; } elseif ($_GET['sort'] == 'notes') { $note = DB::table('societes')->join('contacts', 'societes.id', '=', 'contacts.societe_id')->join('notes', 'contacts.id', '=', 'notes.contact_id')->select('societes.*', 'notes.*')->where('societes.etat', 1)->get(); $societe = $societe->search($query)->sortable()->where('etat', 1)->get(); $tri = 'notes'; // Tri des contacts sans note foreach ($societes as $key => $value) { $exist = 0; foreach ($note as $keyn => $valuen) { if ($value->nom_clt == $valuen->nom_clt) { $exist = 1; } } if ($exist == 0) { $societe[] = $value; } } } $contact->setSearchable(['columns' => ['nom_contact' => 10, 'prenoms_contact' => 10]]); $contact = $contact->search($query)->sortable()->where('etat', 1)->get(); } // Tri sur recherche par adresse if ($_GET['mode'] == 'adresse') { $mode = 'adresse'; if ($_GET['sort'] == 'pays_clt') { $tri = 'pays'; } elseif ($_GET['sort'] == 'ville_siege_clt') { $tri = "ville"; } elseif ($_GET['sort'] == 'statut') { $tri = "client"; } elseif ($_GET['sort'] == 'nom_clt') { $tri = "alpha"; } elseif ($_GET['sort'] == 'created_at') { $tri = "ajout"; } elseif ($_GET['sort'] == 'updated_at') { $tri = "modif"; } elseif ($_GET['sort'] == 'notes') { $tri = "notes"; } $societe->setSearchable(['columns' => ['adresse_siege_clt' => 10]]); $contact = $contact->search($query)->sortable()->where('etat', 1)->get(); } } return view('contact.contact', compact('actif', 'contact', 'type', 'tri', 'query', 'mode')); }