2011-10-15 3 views
0

- 내 앱에서 검색 기능을 구현했습니다. 그것은 조인 된 테이블을 반환하므로 기본적으로 쿼리 결과의 데이터는 다른 테이블에서 가져옵니다. CakePHP에서 쿼리 결과 페이지 매기기

결과의 예는 다음과 같습니다

$selectSQL = 'SELECT 
        agencies.agency, agencies.website_url, agencies.status, agencies.size, agencies.profession, agencies.sector, agencies.id, OfficeData.id, ContactData.name, ContactData.surname, ContactData.job_title, ContactData.email, 
        ContactData.direct_line, OfficeCountryData.country, OfficeData.switchboard, agencies.industry 
        FROM agencies'; 
    $sql2='   LEFT JOIN offices AS OfficeData ON (agencies.id = OfficeData.agency_id AND OfficeData.hq = "1") 
        LEFT JOIN countries AS OfficeCountryData ON OfficeData.hq = OfficeCountryData.id 
        LEFT JOIN contacts AS ContactData ON agencies.id = ContactData.agency_id 
        '; 
    $whereSQL = ' WHERE 1 = 1 AND ProfessionData.profession_id = 3' 
    $groupBySQL = 'GROUP BY agencies.id ORDER BY agencies.id ASC'; 
    $resultAgencies = $this->Agency->query($selectSQL . $sql2 . $whereSQL . $groupBySQL); 

지금 나는 그들이 매기기와 호환되도록 결과를 가져 싶습니다. 나는 그것을 시도했지만 항상 많은 오류가있었습니다.

+0

페이지 넘김? 그리고 어떤 오류가 있었습니까? –

+0

주된 문제점은 결과를 정렬하기 위해 열 이름을 클릭 할 때 모든 것이 사라집니다. –

+0

paginator 구성 요소를 사용하지 않는 경우 paginator 도우미를 사용하지 마십시오. 직접 열을 정렬해야합니다. –

답변

0

CakePHP의 강도는 모든 작업을 수행한다는 것입니다. 올바른 relationships 설정이 있습니까? 그렇게하면 자신 만의 쿼리를 작성할 필요가 없습니다. 나는 지난 2 년 동안 Cake와 함께 일 해왔고, 복잡한 일을하고 내 자신의 쿼리를 작성할 필요가 없었습니다.

귀하의 질의가 실제로 복잡해 보이지 않으므로 CakePHP에서 수행 할 수 없다고 생각합니다. 그것은 당신이 당신의 결과를 변환해야합니다 있도록하지, 어쩌면 힌트 ...

CakePHP의가, 연관 배열에 당신이 결과를 얻을 수있는 경우 ...

을 같은 페이지 매김하고 향상된 보안 등 많은 장점을 가지고 있습니다 해당 형식 :

array('Model' => array('field1', 'field2')) 

이렇게하면 직접 만들 수 있습니다.