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());
 }