2017-03-19 3 views
0

Je construit petit formulaire de recherche me permet de rechercher dans jobsTable de db

emplois Tableau a jobTitle, jobCompany, jobGovernorate, jobLocation et created_at colonne

et affiché des données de formulaire de recherche:

{ "jobTitle" : "designer", "jobCompany": null, "jobGovernorate": null, "jobLocation": null, "postingDate": "ad"}

Je veux dire que certaines entrées peuvent être nulles, alors comment écrire dynamic where clause pour les entrées ont une valeur, je veux moteur de recherche capable de rechercher par JobTitle, JobCompany ou Toutes les entrées si ont va Lue.

Conseil: les champs nom de colonnes de nom et de table sont les mêmes

s'il y a un moyen de récupérer des emplois de ma db comme

DB::table('jobs')->where($request->all()) 

Désolé pour mauvais anglais, je ne sais pas comment expliquer ma question

Répondre

2

Je préfère définir tous les champs de recherche.

$searchFields = ['jobTitle','jobCompany','jobGovernorate','jobLocation','postingDate']; 
$jobQuery = DB::table('jobs'); 
foreach ($searchFields as $field) { 
    if ($request->has($field)) { 
     $jobQuery->where($field, $request->input($field)); 
    } 
} 
$results = $jobQuery->get(); 
0

vous devez coder la requête, je veux dire, que cherchez-vous? quelque chose comme

DB::table('jobs')->where([ 
['jobTitle', 'like', $request->jobTitle . '%'], 
['jobCompany', 'like', $request->jobCompany . '%']])->get();