我有一個如下所示的 graphQL 查詢:
$query = <<<'JSON'
query{
mainProducts(where:{productType:{eq:2}}) {
name, productID
}
}
JSON;
$variables = '';
$json = json_encode(['query' => $query, 'variables' => $variables]);
$chObj = curl_init();
curl_setopt($chObj, CURLOPT_URL, ‘https://whateverurlitis.com’);
curl_setopt($chObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chObj, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($chObj, CURLOPT_HEADER, true);
curl_setopt($chObj, CURLOPT_VERBOSE, true);
curl_setopt($chObj, CURLOPT_POSTFIELDS, $json);
curl_setopt($chObj, CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json;charset=utf-8',
'Authorization: bearer '.MYTOKEN
)
);
$response = curl_exec($chObj);
echo $response;
我的問題是,目前我需要用變數替換查詢引數以使其動態化,并且變數可以是數字或數字陣列,我需要回圈它們。
有人可以告訴我如何productType用變數替換數字 2 嗎?
uj5u.com熱心網友回復:
首先,沒有必要區分either a number or array of numbers. 如果它只是一個數字,您可以只傳遞一個帶有一個數字的陣列。這將使您的架構更簡單。
為了向查詢中添加動態變數,您需要重做查詢以允許傳遞變數。以下應該可以解決問題:
query MainProducts($productTypes: [Int!]!) {
mainProducts(where:{productType:{eq:$productTypes}}) {
name, productID
}
}
這樣,您將能夠傳遞productTypestype 的變數[Int!]!,它是一個整數陣列。
現在,剩下的就是將產品型別 ID 作為變數傳遞給查詢:
$variables = [1,2,3];
您可以在此處閱讀有關將引數傳遞給查詢的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/505185.html
