private function prepareDataForView($request) { $queryFirst = $request->input('query' . $this->firstID); $querySecond = $request->input('query' . $this->secondID); $dateFirst = $dateSecond = $request->input('date'); $lat = $request->input('lat'); $lng = $request->input('lng'); $firstElement = array('id' => $this->firstID, 'query' => $queryFirst, 'date' => $dateFirst, 'lat' => $lat, 'lng' => $lng); $secondElement = array('id' => $this->secondID, 'query' => $querySecond, 'date' => $dateSecond, 'lat' => $lat, 'lng' => $lng); $helper = new SearchHelper(); $mergeQueries1 = $helper->getResultsForEvent($queryFirst, $request); $mergeQueries2 = $helper->getResultsForEvent($querySecond, $request); foreach ($mergeQueries1['sections'] as $element1) { if (!$this->containsSectionWithId($mergeQueries2['sections'], $element1['id'])) { $point = $this->findPosition($mergeQueries2['sections'], $element1['id']); $sectionToAdd = array(array('id' => $element1['id'], 'events' => array())); array_splice($mergeQueries2['sections'], $point, 0, $sectionToAdd); } } foreach ($mergeQueries2['sections'] as $element2) { if (!$this->containsSectionWithId($mergeQueries1['sections'], $element2['id'])) { $point = $this->findPosition($mergeQueries1['sections'], $element2['id']); $sectionToAdd = array(array('id' => $element2['id'], 'events' => array())); array_splice($mergeQueries1['sections'], $point, 0, $sectionToAdd); } } $response = array('responseFirst' => $mergeQueries1, 'responseSecond' => $mergeQueries2, 'elements' => array('first' => $firstElement, 'second' => $secondElement)); return $response; }
public function getResults(Request $request) { $validator = Validator::make($request->all(), $this->rules()); if ($validator->fails()) { return redirect()->route('event')->withErrors($validator)->withInput(); } $query = $request->input('query' . $this->firstID); $helper = new SearchHelper(); $response = $helper->getResultsForEvent($query, $request); $firstElement = array('id' => $this->firstID); $responseToView = array('elements' => array('first' => $firstElement), 'sections' => $response['sections'], 'info' => $response['info']); return view('search.resultV2')->with('data', $responseToView)->withInput($request->all()); }