我想通过 postman 发送对象数组来测试我的 API 函数 当我以 JSON 格式将请求发送到函数,然后循环遍历数组以访问每个对象属性时,会出现以下错误: /image/cN3bY.jpg
这是我的要求: /image/yOjkr.jpg
我搜索了如何使用 postman 发送对象数组,发现我正在以正确的方式这样做 我选择了正文部分下的行,这样我就可以添加请求正文,并将其格式选择为 JSON,并将“Content-Type: application/json”添加到请求 header
我的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));
}
}
我不知道问题是否出在我的请求中,或者是我在 Controller 函数中检索请求数据时可能会误解的问题
最佳答案
它要么是一个数组,在这种情况下,您可以调用
$object = (object) $machine;
或者它是一个字符串,又名 JSON,您可以调用
$object = json_decode($machine);
或者如果它是一个对象/数组使用
$machine['machineType'];
另外请添加 $machine var 的转储
编辑
尝试不使用 [] 发送请求,因为它们将被转换为其中包含对象的数组,相反,如果您删除 [] 并且只有 {},则它应该只是请求中的一个对象
"machineInfo" : {
"machineNo" : "1123213",
"accountType" : "Paid",
//...rest here..
}
试试这个:
public function createRetailer(Request $request){
$machines = $request->machineInfo;
foreach($machines as $machine){
$object = (object) $machine;
return response()->json(is_object($object));
}
}
关于php - 如何通过 Postman 以 JSON 格式发送请求正文中的对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891172/