0

パッケージを使用しています: https://packagist.org/packages/gavroche/ups-api

これを実行すると、Laravels Exception Handler から奇妙な動作が発生します。

$tracking = new \UPS\Tracking(
        'KEY', 'USERNAME', 'PASS'
        );

$shipment = $tracking->track('TRACKING NUMBER HERE');

foreach($shipment->Package->Activity as $activity) {
    var_dump($activity->ActivityLocation->Address->City);
}

興味深いのは、都市が var_dumped されていることですが、laravels の例外ハンドラは、同じように Undefined property: stdClass::$City と言っています。

$activity オブジェクトの 1 つの vardump を次に示します。

object(stdClass)[518]

  public 'ActivityLocation' => 

    object(stdClass)[519]

      public 'Address' => 

        object(stdClass)[520]

          public 'City' => string 'CLEVELAND' (length=9)

          public 'StateProvinceCode' => string 'TN' (length=2)

          public 'PostalCode' => string '37311' (length=5)

          public 'CountryCode' => string 'US' (length=2)

      public 'Code' => string 'M4' (length=2)

      public 'Description' => string 'RECEPTION' (length=9)

      public 'SignedForByName' => string 'HICKMAN' (length=7)

  public 'Status' => 

    object(stdClass)[521]

      public 'StatusType' => 

        object(stdClass)[522]

          public 'Code' => string 'D' (length=1)

          public 'Description' => string 'DELIVERED' (length=9)

      public 'StatusCode' => 

        object(stdClass)[523]

          public 'Code' => string 'KB' (length=2)

  public 'Date' => string '20130426' (length=8)

  public 'Time' => string '085500' (length=6) 

$activity->ActivityLocation->Address オブジェクト laravel のすべてのプロパティで問題が発生します。しかし、$activity->Status->StatusType->Description をリクエストでき、問題はありません。

通常の for ループで問題が解決します。php の foreach() のインクリメントに問題があるようです。

for ($i=0; $i < (count($shipment->Package->Activity) - 1); $i++) { 
    var_dump($shipment->Package->Activity[$i]->ActivityLocation->Address->City);
}
4

1 に答える 1

0

これについては明確ではありませんでしたが、これにアクセスしようとしていますか

$activity->ActivityLocation->Address->City ?

$activityあなたは質問の一部を残して$Cityand notを使用しCityましたが、これが意図的かどうかはわかりませんでした

于 2013-05-31T16:03:08.840 に答える