0
인 여러 검색어를 결합하는 방법 우편 번호 별 거리 검색을 통합하고 싶습니다.내 앱에서 페이지 번호가
$result['zipcode'] = $this->Locations->find('all', array('conditions' => array('plz' => $param)));
if (count($city['Plz']) > 1)
$result['city'] = $this->Locations->find('all', array('conditions' => array('ort' => $city['Stadt']['name'], 'plz !=' => $city['Plz']['zipcode'])));
$this->Locations->virtualFields['distance'] = 'ACOS(SIN(RADIANS(Locations.lat)) * SIN(RADIANS('.$city["Stadt"]["lat"].')) + COS(RADIANS(Locations.lat)) * COS(RADIANS('.$city["Stadt"]["lat"].')) * COS(RADIANS(Locations.lng) - RADIANS('.$city["Stadt"]["lng"].'))) * 6380';
$result['near'] = $this->Locations->find('all', array(
'conditions' => array(
'plz !=' => $param,
'ort !=' => $city['Stadt']['name'],
),
'order' => 'distance ASC'
));
내가 우편 번호 순서로 결과를 표시 할 도시 (도시는 많은 된 우편 번호가있는 경우) 및 가까운, 그래서 난이 방법을했다. 하지만 지금은 케이크 매김을 통해이 결과에 페이지 매김을하고 싶습니다. 는 하나 즉
$this->Locations->find('all', array('conditions' => array(
'order' => 'RESULTS BY ZIPCODE, RESULTS BY CITY, RESULTS BY MISSMATCH ORDERED BY DISTANCE'
)));
어떻게이 문제를 해결할 점점 이러한 쿼리를 만들 수 있습니까?
M.
내가 알고,하지만 난 하나에 결합하려는 요청 3 종류가있다, 그래서 내가 우편 번호는 어디에 도시 일치 옆에 일치 먼저 결과를 얻을 다른 모든 마지막 위치를 위해 도시와 우편 번호 없습니다 일치 거리에 따라. –
흠, 왜 단일 쿼리에서 검색을 수행하지 말고 '필터링'대신 결과를 '순위 지정'하시겠습니까? – thaJeztah
이 모델은 내 앱을 만들기 시작할 때 연관성과 메신저를 가지고 있기 때문에 수동으로 조인을 설정하고 싶지 않습니다. 내가 어떤 협회를 추가했는지 알지 못한다. beforeFind 모델에서 전체 쿼리 문자열을 가져와 작업없이 끝내는 방법이 있습니까? –