take(5) ->get(); return response()->json($persons); } public function search(Request $request) { $query = $request->post(); $result = []; $where = []; $qr = null; $qa = [$qr]; $q = $qr; $count = 0; foreach ($query as $c) { if ($c["criteria"]["operator"] == "=") $where = [$c["field"]["name"], $c["pre"] == "NOT" ? '!=' : '=', $c["value"]]; if ($c["criteria"]["operator"] == "LIKE START") $where = [$c["field"]["name"], $c["pre"] == "NOT" ? 'not like': 'like', $c["value"].'%']; if ($c["criteria"]["operator"] == "LIKE") $where = [$c["field"]["name"], $c["pre"] == "NOT" ? 'not like': 'like', '%'.$c["value"].'%']; // $result[] = $where; if ($c["count"] == 0) { $q = \array_pop($qa); if ($q == null) $q = Person::where([$where]); else $q->where([$where]); } if ($c["level"] > 0 && $c["count"] == 0) array_push($qa,$q); if ($c["pre"] == 'AND') $q->andWhere($where); if ($c["pre"] == 'OR') $q->orWhere($where); if ($c["pre"] == 'AND NOT') $q->whereNot($where); if ($c["pre"] == 'OR NOT') $q->orWhereNot($where); if ($c["groupop"] != "") { if ($c["count"] == 0) { $qr2 = function($q) use ($c) { }; array_push($qa,$qr2); } } } // DB::connection( 'mongodb' )->enableQueryLog(); if ($qr) $result = $qr->get(); else $result = []; // dd(DB::connection('mongodb')->getQueryLog()); return response()->json($result); // { // "groupop": "", // "pre": "NOT", // "field": { // "name": "fullNames.value", // "desc": "Plné meno" // }, // "value": "sds", // "criteria": { // "name": "Rovná sa", // "operator": "%s" // }, // "level": 0, // "count": 0 // }, // { // "groupop": "", // "pre": "NOT", // "field": { // "name": "fullNames.value", // "desc": "Plné meno" // }, // "value": "sds", // "criteria": { // "name": "Rovná sa", // "operator": "%s" // }, // "level": 0, // "count": 1 // } // ] } }