Attribut aus Attribute/Customer Model mit getAttribute()->fromArray($data) holen?

Hallo,

folgendes Problem: Ich brauche aus dem Attribute/Customer Model ein Attribut für einen bestimmten $customer. Ich kenne von diesem Attribut nur den Namen.

        // Get Customer
        $customerModel = Shopware()->Models()->getRepository('Shopware\Models\Customer\Customer');
        /** @var $customer \Shopware\Models\Customer\Customer */
        $customer = $customerModel->findOneBy(array('id' => $user));
        /** @var $attribute \Shopware\Models\Attribute\Customer */
        $attribute = $customer->getAttribute()->fromArray($data);

Kann ich nun auf das Attribut mit der Methode fromArray($data) zugreifen bzw. dieses holen?

Welche Form muss dann das $data-Array haben?

Hi,

ist zwar schon über ein Jahr her aber dennoch ist das sehr schlecht Dokumentiert. Hatte gerade das selbe Problem. Ich schreibe es mal zusammen, für die Nächsten, die hier landen :wink:

  1. eigenes Attribut anlegen via Anleitung hier:
    Attribute system

  2. Das Model hierfür wird automatisch generiert anhand der Spalten in der MySQL. Daher umbedingt das Model neu bauen, siehe:
    Attribute system
    (einfach nach dem erstellen der Attribute ausführen)

  3. Ab jetzt kann man einfach wie folgt die Attribute auslesen:
    Als Beispiel heißt ein Attribut foo_bar als Spaltenname.

    Models()->getRepository(‚Shopware\Models\Customer\Customer‘);

    /** @var $customer \Shopware\Models\Customer\Customer */
    $customer = $customerModel->findOneBy(array(‚id‘ => $user));

    /** @var $attribute \Shopware\Models\Attribute\Customer */
    $attribute = $customer->getAttribute()->getFooBar();

Fertig, hoffe das Hilft jemand.

Shopware hat hier extremen Aufholbedarf was die Dokumenation angeht…

3 „Gefällt mir“