2012-02-20 6 views
0

Drupal 7에서 새로 온 것입니다. 6에서는 사용자 정의 모듈을 작성하고 표준 db_query를 사용하여 CCK 필드를 쿼리했습니다. 그렇게함으로써 나는 JOINs와 LOWER(REPLACE(n.title, ' ', '_')) = '%s'과 같은 것들을 사용할 수있었습니다.Drupal 7 EntityFieldQuery

EntityFieldQuery를 사용하는 방법이 있는지 궁금합니다. EFQ의 개념은 꽤나 직설적 인 것처럼 보이지만 현장 조건의 측면에서 볼 때 운영자를 사용하여 특정 필드의 값만 확인할 수있는 것처럼 보입니다. 위의 코드를 사용하여 변환 된 값이 내 값과 같은지 확인하려면 어떻게해야합니까?

쿼리를 수행하고 NID 및 VID를 가져 오는 데 필요한 정보가로드되므로 JOIN을 사용할 필요가없는 것처럼 보입니다. 지정된 컨텐트 유형에 필요한 모든 것을 고려하고 있기 때문입니다. 사용 :

$query->entityCondition('bundle', array('article', 'page')); 

$query->propertyCondition('type', array('article', 'page', 'blog')); 

을 효과적으로 동일한 가입 문을? 두 문장 모두 NID를 사용하여 다양한 콘텐츠 유형에 참여합니까?

감사합니다, 호위 EntityFieldQuery의 주요 장점 중

답변

0

하나는 당신이 사용하고있는 필드 백엔드 상관하지 않는다는 것입니다. 이를 달성하기 위해 MongoDB와 같은 백엔드에서도 사용할 수있는 옵션의 하위 집합을 지원해야하기 때문에 복잡한 작업을 제공하지 않습니다.

필드 값에 대해 SQL에서 이와 같은 복잡한 쿼리를 수행해야하는 경우 필드 스키마를 다시 생각하는 것이 좋습니다.