Tworzenie stron internetowych - poradnik
W Laravel 9 można wysyłać powiadomienia email za pomocą klas powiadomień i usługi poczty. Kroki, jakie należy wykonać, aby wysłać powiadomienie email:
Przykład
use App\Notifications\ExampleNotification;
use Illuminate\Support\Facades\Notification;
// ...
$user = User::first();
$details = [
'greeting' => 'Hello!',
'body' => 'This is an example email.',
'thanks' => 'Thank you for using Laravel!',
];
Notification::send($user, new ExampleNotification($details));
Tyle w teorii. Teraz trochę praktyki. Można użyć następującego polecenia Artisan, aby stworzyć klasę powiadomienia:
php artisan make:notification ExampleNotification
Gdzie „ExampleNotification” jest nazwą klasy powiadomienia. Po wykonaniu tego polecenia plik z klasą powiadomienia zostanie utworzony w katalogu „app/Notifications”. Możesz edytować ten plik, aby dostosować treść powiadomienia i inne opcje.
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
class ExampleNotification extends Notification
{
public $details;
public function __construct($details)
{
$this->details = $details;
}
public function toMail($notifiable)
{
return (new MailMessage)
->greeting($this->details['greeting'])
->line($this->details['body'])
->line($this->details['thanks'])
->to($notifiable->email);
}
}
W powyższym przykładzie tworzymy obiekt „MailMessage” i ustawiamy metodami „greeting”, „line” i „to” treść powiadomienia oraz adres odbiorcy. Obiekt „$notifiable” zawiera informacje o odbiorcy powiadomienia, np. adres email.
Możesz wywołać powiadomienie w kontrolerze, korzystając z usługi „Notification”. Przykład:
use App\Notifications\ExampleNotification;
use Illuminate\Support\Facades\Notification;
class ExampleController extends Controller
{
public function sendNotification()
{
$user = User::first();
$details = [
'greeting' => 'Hello!',
'body' => 'This is an example email.',
'thanks' => 'Thank you for using Laravel!',
];
Notification::send($user, new ExampleNotification($details));
return 'Notification sent successfully.';
}
}
W powyższym przykładzie, wywołujemy metodę „send” na usłudze „Notification” i przekazujemy obiekt powiadomienia „ExampleNotification” oraz obiekt odbiorcy „User”.
Możesz również stworzyć obiekt odbiorcy:
$user = new User;
$user->email = 'example@example.com';