1
votes

Passer le champ PhoneNumber en tant que tableau

J'utilise une documentation api laravel en ligne dans mon application. Quand j'exécute mon code dans mon navigateur, j'obtiens l'erreur "passer le champ de numéro de téléphone en tant que tableau". Mais le champ numérique est déjà passé en tant que champ tableau. Que pourrais-je manquer ci-dessous dans mon code? Merci d'avance

Array
(
    [phoneNumber] => Array
        (
            [0] => 44234200234
            [1] => 44234242002
        )

    [from] => test
    [content] => I love to code

)
{"status":"error","message":"Make sure you are passing the phoneNumber field as an array"}

Quand je retourne $ variables, j'obtiens la réponse

public function testAPI(Request $request)
    {
        $on_call_back = 'https://learntoday.co.uk/var';
        $id = '*****';
        $url = $on_call_back.'?key='.$id;
        $variables = [
           'phoneNumber' => ['44234200234','44234242002'],
           'from' => 'world',
           'content' => 'I love to code',
        ];

        $ch = curl_init();
        $headers = array();
        $headers[] = "Content-Type: application/json";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($variables));
        $result = curl_exec($ch);
        $result = json_decode($result, TRUE);
        curl_close($ch);
    }


0 commentaires

4 Réponses :


1
votes

Votre syntaxe du tableau semble être incorrecte, avez-vous essayé de mettre chaque nombre entre guillemets simples comme ceci:

 'phoneNumber' => ['44234200234', '44234242002'],


2 commentaires

@CodeNewbie encore une fois sur votre modification, il vous manque un guillemet simple de clôture sur votre premier numéro


OK .. Merci .. Je viens de mettre à jour et de relancer le code, mais même erreur s'il vous plaît



0
votes

Vous devriez essayer ceci:

public function testAPI(Request $request)
    {
        $on_call_back = 'https://learntoday.co.uk/var';
        $id = '*****';
        $url = $on_call_back.'?key='.$id;
        $variables = [
           'phoneNumber' => ['44234200234','44234242002'],
           'from' => 'world',
           'content' => 'I love to code',
        ];

        $ch = curl_init();
        $headers = array();
        $headers[] = "Content-Type: application/json";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($variables));
        $result = curl_exec($ch);
        $result = json_decode($result, TRUE);
        curl_close($ch);
    }

Réponse mise à jour

$variables = [
           'phoneNumber' => ['44234200234','44234242002'],
           'from' => 'world',
           'content' => 'I love to code',
        ];


0 commentaires

0
votes

Veuillez essayer d'envoyer la variable $ comme ci-dessous le code

$variables = array(
           'phoneNumber' => array('44234200234','44234242002'),
           'from' => 'world',
           'content' => 'I love to code',
        );


0 commentaires

0
votes

Remplacez

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($variables));

par

curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ variables);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($variables));


2 commentaires

Après avoir changé cette ligne de code, j'obtiens l'erreur Conversion de tableau en chaîne


@CodeNewbie a mis à jour ma réponse.