Sajjad Ali
Sajjad Ali

Reputation: 166

Send notification to all users in laravel with all users data

I want to send notification to all users and want to pass all users data to MyNotification class

Notification::send($users, new MyNotification($users));

In that way MyNotification class constructor will receive the collection of all users and it returns the error

Property [first_name] does not exist on this collection instance

MyNotificatioin.php

public function toMail($notifiable)
{
    return (new MailMessage)
        ->line('Dear ' . $this->users->first_name . ',')
        ->line('Your profile has been updated.')
        ->action('View Profile', url('/'));
}

So my question is, how I can pass all users data to MyNotification class or I will need to run foreach loop in MyNotification class to get every user's first_name ?

Upvotes: 0

Views: 404

Answers (1)

ColinMD
ColinMD

Reputation: 964

In your toMail function you would use the $notifiable variable (which is the user) instead of trying to use the users collection.

public function toMail($notifiable)
{
    return (new MailMessage)
        ->line('Dear ' . $notifiable->first_name . ',')
        ->line('Your profile has been updated.')
        ->action('View Profile', url('/'));
}

I'm also not sure why you are passing all users in to the MyNotification, this is not required.

Upvotes: 1

Related Questions