Skip to content

Undefined array key 1 in LaravelNotificationsDataSource #733

Closed
@freestyledork

Description

@freestyledork

When logging sent emails I ran into an issue where cced emails have a NULL name array value. This was causing a false positive in the ternary setter and throwing an error. @itsgoingd any chance this is easy enough to add without needing a PR?

Before:

	protected function notificationAddressToString($address)
	{
		if (! $address) return;
		if (! is_array($address)) $address = [ $address ];

		return array_map(function ($address) {
			if (! is_array($address)) return $address;

			$email = isset($address['address']) ? $address['address'] : $address[0];
			$name = isset($address['name']) ? $address['name'] : $address[1];

			return $name ? "{$name} <{$email}>" : $email;
		}, $address);
	}

After:

	protected function notificationAddressToString($address)
	{
		if (! $address) return;
		if (! is_array($address)) $address = [ $address ];

		return array_map(function ($address) {
			if (! is_array($address)) return $address;
                        // ----- check array key exists vs has value -----
			$email = array_key_exists('address', $address) ? $address['address'] : $address[0];
			$name = array_key_exists('name', $address) ? $address['name'] : $address[1];

			return $name ? "{$name} <{$email}>" : $email;
		}, $address);
	}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions