brevo-php icon indicating copy to clipboard operation
brevo-php copied to clipboard

Cannot assign offset 'attributes' to Brevo\Client\Model\UpdateContact.

Open johnkhansrc opened this issue 1 year ago • 1 comments

When I update the attributes of a Brevo contact as described in the documentation (https://developers.brevo.com/reference/updatecontact) PHPStan reports the following violation :

Cannot assign offset 'attributes' to Brevo\Client\Model\UpdateContact.

try {
            $identifier = '[email protected]';
            $updateContact = new UpdateContact();
            $updateContact['attributes'] = ['EMAIL'=>'[email protected]', 'FIRSTNAME'=>'John Doe'];

            $this->contactEndpoint->updateContact($identifier, $updateContact);
        } catch (\Exception $e) {
            $this->brevoLogger->error('Error while updating contact on SendinBlue', ['exception' => $e]);
        }

What is the correct way to modify a contact's attributes?

johnkhansrc avatar Jul 01 '24 12:07 johnkhansrc

Hello! I'm not sure if this will help, but I use the following approach, and it works like a charm.

try {

            $identifier = '[email protected]'; // string | Email (urlencoded) OR ID of the contact

            $updateContact = new \Brevo\Client\Model\UpdateContact();

            $updateContact->setAttributes( ['EMAIL'=>'[email protected]', 'FIRSTNAME'=>'John Doe']);

            $this->instance->updateContact($identifier, $updateContact);

        } catch (Exception $e) {

            $this->Log->content(["Exception in ", __METHOD__, $e->getMessage(), PHP_EOL])->saveToFile()->andExit();

        }

Farrusc0 avatar Jul 08 '24 13:07 Farrusc0