2012-04-10 3 views
1

기존 객체 (검색된 또는 새로 생성 된)가 일부 기준과 일치하는지 확인하도록 Propel에 요청하는 가장 좋은 방법은 무엇입니까? Propel이 이것을 수행 할 고유의 능력을 갖고 있는지 궁금해합니다 .--) 나는 복잡한 방법을 사용하는 것이 쉽기 때문에 간단한 방법에 대해 묻습니다. 같은 이상적으로 뭔가 : 기준 객체에만 SQL 쿼리를 생성하는 데 사용됩니다 및 객체와 일치하지 않는 때문에Propel : 기준과 일치하는 기존 객체 테스트

$fruit = FruitPeer::doSelectOne(new Criteria); // get whatever fruit 

    $crit1 = new Criteria; 
    $crit1->add(FruitPeer::REF_COLOR, 'green');  // criteria for green fruits 

    if ($fruit->matches($crit1)) {     // check if my fruit is green 
     echo 'My fruit is green'; 
    } 

답변

1

이, 사소한 방법으로 할 수 없습니다. 그러나 데이터베이스를 다시 쿼리 할 수 ​​있습니다. Propel의 인스턴스 풀은 쿼리 된 객체의 인스턴스가 이미 존재 함을 감지하면 모든 데이터를 다시 검색하지 않아야합니다.

0

아마도 가장 간단한 방법은 기본 키에 조건을 추가하고 개수를 계산하는 것입니다. 당신은 (대신 일반 Criteria 인스턴스의 ModelCriteria 예) 쿼리가있는 경우

당신은 한 줄에이 작업을 수행 할 수 있습니다

if($critQuery1->filterByPrimaryKey($fruit->getPrimaryKey())->count() > 0) {…} 
관련 문제