Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Creating Notifications in Laravel

Introduction

Notifications in Laravel allow you to send alerts to your users through various channels such as database, email, SMS, and more. This tutorial will guide you through the process of creating notifications from start to finish.

Setting Up Laravel

Before you can create notifications, ensure you have a Laravel application set up. You can create a new Laravel project using the following command:

composer create-project --prefer-dist laravel/laravel notifications-example

Navigate to your project directory:

cd notifications-example

Creating a Notification

To create a new notification, use the Artisan command:

php artisan make:notification OrderShipped

This command creates a new notification class in the app/Notifications directory. Open the newly created OrderShipped.php file to modify its content.

Defining Notification Content

In the OrderShipped.php file, you will define how the notification will be delivered. Here’s an example of how to set it up:

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class OrderShipped extends Notification
{
    use Queueable;

    protected $order;

    public function __construct($order)
    {
        $this->order = $order;
    }

    public function via($notifiable)
    {
        return ['mail'];
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->greeting('Hello!')
            ->line('Your order has been shipped!')
            ->action('View Order', url('/orders/'.$this->order->id))
            ->line('Thank you for your purchase!');
    }
}
                

In this example, we define the notification to be sent via email and include a greeting, a message, an action button, and a thank you note.

Sending Notifications

Now that we’ve created the notification, we need to send it. This can be done in a controller or any other part of your application. Here's an example:

use App\Notifications\OrderShipped;
use App\Models\User;

public function shipOrder($orderId)
{
    $order = Order::find($orderId);
    $user = User::find($order->user_id);
    
    $user->notify(new OrderShipped($order));
}
                

In this example, we find the user and the order, then send the notification using the notify method.

Testing Notifications

To test the notification functionality, ensure your mail configuration is set up correctly in the .env file. You can use services like Mailtrap for testing. Once configured, trigger the notification by executing the method that sends it.

Conclusion

In this tutorial, we covered how to create notifications in Laravel, including setting up a new project, creating a notification class, defining the notification content, and sending notifications to users. With this knowledge, you can implement robust notification systems in your Laravel applications.