2016-12-20 8 views
0

私はPHPコードのREST APIから構文解析のためにphp sdkに変換しています。どのようにParseQuery :: orQueriesをmatchesQueryとphp parse-server sdkを組み合わせて使用​​しますか

このREST APIクエリを解析用のphp-sdkの正しい構文に変換する際に問題があり、いくつかのポインタを使用できます。

これは動作中のREST APIクエリです。

   where= 
         {"phostId": 
         {"__type":"Pointer","className":"Hosts","objectId":"'.$hostObjId.'"}, 
         "isCompany":false, 
         "expunged":{"$nin":[true]}, 
          "$or":[ 
           {"endDate": 
            {"$gte": 
             { 
              "__type":"Date", 
              "iso":"'.$now.'" 
             } 
            } 
           }, 
           {"isPerm":true} 
           ] 
          } 
       &keys=pvisitorId,company,isPerm,startDate,endDate,name 
       &include=pvisitorId&order=-name'; 

私は問題のないポインタに基づいて問い合わせることができますが、私はOR節での作業方法を理解できません。

これはこれまで私が行ってきたことです。

//Query the pointer for an object id matching our user session id 
$innerQuery = new ParseQuery("Hosts"); 
$innerQuery->equalTo("objectId",$_SESSION['host_object_id']); 

//Building two queries used for the OR condition 
    $endDate = new ParseQuery("Authorizations"); 
    $endDate->greaterThan("endDate", $date);  
    $isPerm = new ParseQuery("Authorizations"); 
    $isPerm->equalTo("isPerm", True); 

//create primary query 
$query = new ParseQuery("Authorizations"); 

//set filters 
$query->equalTo("isCompany",False); 
$query->notEqualTo("expunged",True); 

////This is what I am trying to add to $query just not sure how to do it. 
$mainQuery = ParseQuery::orQueries([$endDate, $isPerm]); 
$results1 = $mainQuery->find(); 

//Sort, Limit, add InnerQuery 
$query->addDescending("name");  
$query->limit(1); 
$query->matchesQuery("phostId", $innerQuery);  

// All results: 
$results = $query->find(); 

私が紛失しているものについては、事前にお手数ですがありがとうございます。

答えて

0

ポインターにはmatchesQueryしか使用できません。あなたの場合、matchesKeyInQueryを使用する必要があります。

$query->matchesKeyInQuery("phostId", "objectId", $innerQuery); 

objectIdを比較する列名に置き換えます。

希望します。

+0

ありがとうYe Min Htut。私はORクエリを全体的なクエリに結合する場所を見てもまだ苦労しています。 – OTG

+0

ありがとうYe Min Htut。私はORクエリを全体的なクエリに結合する場所を見てもまだ苦労しています。 私のコードには5つの異なるクエリがあります。 1)私のポインタ用** $ innerQuery ** 2)私のORクエリ用** $ endDateと$ isPerm ** 1)これは実際のORクエリです。** $ mainQuery ** 1)最後に最後のクエリまたは親の場所で、上記のすべてのクエリの結果を見たいと思っています。** $ query ** 親クエリのどこかにORクエリをネストできるはずです。 – OTG

+0

あなたはあなたの日付オブジェクトをチェックしたり、あなたはあなたの初期日付オブジェクトをどのように初期化して答えを編集できますか?それは何かが間違っているように見える日付オブジェクトです。 –

関連する問題