2013-05-04 2 views
0

Cakephp에서 여러 조건으로 테이블에서 데이터를 검색하도록 도와주세요.
하나의 테이블 이름이 있습니다. article; 아래 코드를 사용하여 데이터를 검색하려고 시도했습니다
특정 ID가 매개 변수에 주어진대로 얻으려고합니다. article_price> 0 article_status> 1
CakePHP : 여러 조건으로 데이터를 검색하는 방법

public function getArticle($artID = ''){ 
    return $this->find('all', array(
     'condition' => array(
          'article_id =' => $artID, 
          'article_price' => '> 0', 
          'article_status = ' => '1'), 
     'order' => 'article_id DESC' 
    )); 
} 

// 내가 원하는 조건없이 모든 데이터를 선택한 넣어 밖으로.

내 코드의 문제점은 무엇입니까?
내가 알아 낸 것은 내가 인쇄 한 것입니다 : echo $ this-> element ('sql_dump'); 그리고 다음과 같은 SQL 문이 있습니다 :

SELECT `article`.`article_id`, `article`.`name`, `article`.`article_price`, `article`.`article_status` FROM `db_1stcakephp`.`article` AS `article` WHERE 1 = 1 ORDER BY `article_id` DESC 

도와주세요. 감사합니다.

답변

3

모델 이름 제 경우 : 당신의 모델은 관계가 같은 이름을 가질 때까지 'Model.field'구문은 선택 사항입니다 사용

public function getArticle($art_id) { 
    return $this->find('first', array(
     'conditions' => array(
      'Article.article_id' => $art_id, 
      'Article.article_price >' => 0, 
      'Article.article_status >' => 1, 
     ), 
    )); 
} 

- 예를 Article.status 및 Author.status에 대한이.

'Article.price >' => $minPrice, 
'Article.price <=' => $maxPrice, 

을 그리고 정말 '조건'에 오타가 발견되지 않았다

배열의 핵심 부분으로 비교 기호를 이동하면 당신이 할 수 있습니다.

+0

답변에 올바른 해결책이 포함되어 있지만 실제로 * OP *가 잘못되었다는 설명을 추가해야합니다. 예 : 'condition'은'conditions'이어야하고'>'는 조건의 * value *가 아닌 * key *에 있어야합니다. 약간의 추가 정보를 추가하겠습니다. – thaJeztah

+0

감사합니다. 도움이 가득합니다. –

+0

여러 조건을 * OR * 논리와 결합하려면 '또는'키로 묶으십시오. http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#complex-find-conditions – pixelistik

관련 문제