我目前有
object(QuickBooksOnline\API\Data\IPPSalesItemLineDetail)#334 (17) {
["ServiceDate"]=>
NULL
["TaxInclusiveAmt"]=>
NULL
["DiscountRate"]=>
NULL
["DiscountAmt"]=>
NULL
["SalesItemLineDetailEx"]=>
NULL
["ItemRef"]=>
string(1) "5"
["ClassRef"]=>
NULL
["UnitPrice"]=>
string(3) "275"
["RatePercent"]=>
NULL
["PriceLevelRef"]=>
NULL
["MarkupInfo"]=>
NULL
["Qty"]=>
string(1) "1"
["UOMRef"]=>
NULL
["ItemAccountRef"]=>
string(2) "79"
["InventorySiteRef"]=>
NULL
["TaxCodeRef"]=>
string(3) "TAX"
["TaxClassificationRef"]=>
NULL
}
这是我从api调用获得的更大数据集的一部分。 目前我这样做:
foreach ($invoice->Line as $fv_element) {
$element = $fv_element->SalesItemLineDetail;
var_dump ($element);
}
上面显示的数据来自$ element的var_dump。
我试图访问["Qty"] => string(1) "1"
数据。
这是我尝试过的:
$element->Qty
这给出了这个错误:"试图获得非对象的属性"
然后我尝试这个$element['Qty']
这给了我这个错误:"不能使用QuickBooksOnline \ API \ Data \ IPPSalesItemLineDetail类型的对象作为数组"
我还在$ element和$ element->数量上尝试过foreach。这也没有用。提前感谢您提供的任何帮助。
答案 0 :(得分:0)
似乎在你的foreach循环中它必须是$fv_element->SalesItemLineDetail
为null,所以在你访问属性之前尝试检查它:
foreach ($invoice->Line as $fv_element)
{
$element = $fv_element->SalesItemLineDetail;
if($element)
dd($element->Qty);
else
dd("SalesItemLineDetail is null");
}