質問: entityfieldqueryでorを使用する 今日までにこれを行う必要がありませんでしたが、db_orが選択クエリに使用されているため、entityfieldqueryを使用してorクエリを実行することはできないようです。例では、値がnullまたは今日より後の日付フィールドを持つすべてのエンティティを取得します。私は何かまたはいくつかのトリックを逃していますか、またはこれは単にサポートされていませんか?
回答: entityfieldqueryをサブラスし、いくつかのメソッドをオーバーライドできます。クラスentityfieldqueryのオブジェクトに追加された条件(プロパティ条件など)が配列に追加されます。_ public function propertycondition($column, $value, $operator = null) { // the '!=' operator is deprecated in favour of the '<>' operator since the // latter is ansi sql compatible. if ($operator == '!=') { $operator = '<>'; } $this->propertyconditions[] = array( 'column' => $column, 'value' => $value, 'operator' => $operator, ); return $this; } _クエリが作成されると、その配列は次のようなループで使用されます(コードは entityfieldquery :: propertyquery() にあります)。_foreach ($this->propertyconditions as $property_condition) { $this->addcondition($select_query, "$base_table." . $property_condition['column'], $property_condition); } __$select_query_には、db_select()の呼び出しから返された値が含まれます。