2013-08-14 2 views
0

find()에 대한 conditions 매개 변수가 SQL WHERE 절과 동일하다는 내용의 CakePHP 1.3 설명서를 읽었습니다. 내가 CakePHP는이 같은 뭔가를 쓰기 위해 노력하고있어 :어떻게 혼합 AND 연산자를 사용하여 CakePHP find() 조건을 작성합니까?

select count(*) from claim 
where ((claim_id = X and company_id = W) or (claimant_firstName = Y and claimant_lastName = Z)) 

그러나, 나는 conditions 매개 변수를 구성하는 방법에 대한 혼란 스러워요.

는 완전히 다른

find('count', array(
      'conditions' => array(
           Claim.company_id => $companyId, 
           Claim.id' => $claimNumber, 
          'or' => array(
            'Claimant.first_name' => $claimantFirstName, 
            'Claimant.last_name' => $claimantLastName, 
            ) 
          ) 
      ) 
    ); 

또는

 find('count', array(
      'conditions' => array(
          'or' => array(
             Claim.company_id => $companyId, 
             Claim.id' => $claimNumber 
            ) 
          'or' => array(
            'Claimant.first_name' => $claimantFirstName, 
            'Claimant.last_name' => $claimantLastName, 
            ) 
          ) 
      ) 

또는 뭔가처럼 있습니까?

답변

1

이 시도 :

$conditions = array(
        'or' => array ( 
         array('and' => array('Claim.company_id' => $companyId, 'Claim.id' => $claimNumber)), 
         array('and' => array('Claimant.first_name' => $claimantFirstName, 'Claimant.last_name' => $claimantLastName)) 
        ) 
       ); 
    $this->ModelName->find('count', array('conditions' => $conditions)); 
+0

감사합니다! 그게 내가 원하는 것을하는 것처럼 보입니다. – Stephen

관련 문제