将数据作为数组传递-PHP

时间:2019-01-30 14:02:18

标签: php laravel

我正在将数据和文件作为数组传递给我的API。

但是在API级别上,我检查接收者是否为数组格式。

在我的代码中,我将数据作为数组传递,但是API返回错误,表明我的数据不是数组形式。

请问我在这里怎么做错了?

错误

  
    

确保您将目标字段作为数组返回

  

客户端

if(function_exists('curl_file_create'))
{
    $cFile = curl_file_create($file_name_with_full_path);
} else {
    $cFile = '@' . realpath($file_name_with_full_path);  
}

$post = array( 'destination' => ['00448923202'], 'file'=>$cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
$result=curl_exec ($ch);
return $result;
curl_close ($ch);

API级别

$destination = $request->post('destination');

if (!is_array($destination)) {
    return response()->json([
        'status' => 'error',
        'message' => 'Make sure you are passing the destination field as an array'
    ]);
}

2 个答案:

答案 0 :(得分:0)

我不知道您从哪里拿走recipient,因为它不在您显示的请求中。好像您混合了一些变量。

第二,您丢失了json_decode(),因为您正在发送JSON,因此在接收后需要对其进行解码。

关于您要寻找的功能array_key_exists()或只是isset()

示例:

$test = ['destination' => '12345'];

var_dump(isset($test['destination']));
var_dump(array_key_exists('destination', $test));

答案 1 :(得分:0)

如果使用的是laravel 5.x,则无论使用$request->get('recipient')还是POST方法,都将使用GET获取参数。