2010-01-18 2 views
3

CakePHP에서 코드를 다시 작성해야하는 앱이 있습니다.CakePHP & Subselects

나는 부속 선택과 선택 다음있어 :

 SELECT COUNT(*) AS item1, 
      (SELECT COUNT(*) FROM portal_members) AS item3, 
      (SELECT COUNT(*) FROM portal_reviews) AS item3, 
      (SELECT COUNT(*) FROM portal_downloads) AS item4 
     FROM portal_articles 
     WHERE 1 = 1 

사람이 어떻게 CakePHP의가 ($ 유형, $의 PARAMS를) 찾을 사용하여 해당 쿼리를 만드는 방법 어떤 생각을 가지고?

답변

5

, 나는 4 개 패스에 그 일을 권하고 싶습니다.

$item1 = $this->PortalArticle->find('count'); 
$item2 = $this->PortalReview->find('count'); // etc.. 

그것은 실행하는 데 조금이라도 더 오래 걸릴 수 있습니다,하지만 당신의 의도가 훨씬 명확하고 코드가 훨씬 깨끗하다.

+0

이것은 처음 시도한 방법이지만 더 엄격한 방법으로 생각할 수도 있습니다. 답변 감사합니다. 그렇게 할 것입니다! – Johannes

1

이 코드

$this->loadModel('PortalArticle'); 
$db = $this->PortalArticle->getDataSource(); 
$a = $db->fetchAll(
    ' SELECT COUNT(*) AS item1, 
    (SELECT COUNT(*) FROM portal_members) AS item3, 
    (SELECT COUNT(*) FROM portal_reviews) AS item3, 
    (SELECT COUNT(*) FROM portal_downloads) AS item4 
FROM portal_articles 
WHERE 1 = 1' 
);