【发布时间】:2019-09-17 08:36:25
【问题描述】:
我想通过邮递员发送对象数组来测试我的 API 函数 当我以 JSON 格式将请求发送到函数然后循环遍历数组以访问每个对象属性时,它给了我以下错误: https://i.imgur.com/QV9MDsm.jpg
这是我的要求: https://i.imgur.com/4584wf3.jpg
我搜索了如何使用邮递员发送一组对象,发现我的做法是正确的 我选择了正文部分下的行,以便我可以添加我的请求正文并将其格式选择为 JSON,并将“Content-Type:application/json”添加到请求标头
我的 API 函数:
public function createRetailer(Request $request){
$machines = $request->machineInfo;
foreach($machines as $machine){
$newMachine = new Machine;
$newMachine->machine_no = $machine->machineNo;
$newMachine->account_type = $machine->accountType;
$newMachine->machine_type = $machine->machineType;
$newMachine->retialer_id = $retailer->retailerId;
$newMachine->save();
}
}
我希望我可以将每个数组对象属性作为 PHP 对象访问,但我发现它不是一个对象,通过使用 is_object() 函数对其进行测试:
public function createRetailer(Request $request){
$machines = $request->machineInfo;
foreach($machines as $machine){
return response()->json(is_object($machine));
}
}
我不知道问题出在我的请求中,还是我在控制器函数中检索请求数据时可能误解的问题
【问题讨论】:
-
您可以在调试方法的顶部添加
return dd($request->machineInfo)吗?作为猜测,我认为您应该json_decode()数组的每个元素,或者将其属性作为数组访问$machine['machineNo'] -
响应是数组数组:
array:1 [ 0 => array:4 [ "machineNo" => "123456" "accountType" => "Paid" "machineType" => "hb3br238rhi" "retailerId" => "1" ] ]当我尝试使用 json_decode() 时,它响应错误:json_decode() 期望参数 1 是字符串,给定数组
标签: php json laravel api postman