PHP if check, um 'Error: Call to a member function myFunction() on null' auszuschließen

felsi

Banned
Registriert
Mai 2007
Beiträge
556
Hallo,

ich habe folgende foreach Schleife geschrieben:

Code:
{
        foreach ($orders->getItems() as $order) {

           $companyId = $order->getExtensionAttributes()->getAmCompanyAttributes()->getCompanyId()
           $company = $this->amastyCompanyRepositoryInterface->getById($companyId);
           $superUserId = $company->getSuperUserId();
           $order->setCustomerId($superUserId);
            }
        }
        return $orders;
    }

Das funktioniert auch wunderbar, solange es die getCompanyId() in den 'orders' gibt. Bei manchen Bestellungen fehlt sie allerdings, weswegen ich dann diesen Error erhalte:
Error: Call to a member function getCompanyId() on null

Versucht habe ich folgendes:

Code:
if($companyId = $order->getExtensionAttributes()->getAmCompanyAttributes()->getCompanyId()) {
...
}

Das geht aber nicht, obwohl ich gedacht habe, es genügt, zu prüfen, ob das existiert.

Könnte mir jemand beim korrekten if check behilflich sein?
Vielen Dank
 
Hallo, danke dir. Aber ich glaube ich hab's. Ich musste "eine Stufe höher gehen" mit dem if check:

Code:
            if ($test = $order->getExtensionAttributes()->getAmCompanyAttributes()) {

                $companyId = $test->getCompanyId();
                
                ...
                }

So scheint es zu gehen.
 
Zurück
Oben