Laravel 5.6无法访问对象的属性

时间:2018-05-22 23:00:41

标签: php laravel-5

我目前有

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。这也没有用。提前感谢您提供的任何帮助。

1 个答案:

答案 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");
 }