Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Why notifications reach users effectively
📖 Scenario: You are building a Laravel application that sends notifications to users when important events happen, like new messages or updates.
🎯 Goal: Build a simple Laravel notification system that sends notifications to users and ensures they receive them effectively.
📋 What You'll Learn
Create a User model with a name and email
Create a Notification class with a message
Send a notification to a user
Configure the notification to use the database channel
💡 Why This Matters
🌍 Real World
Notifications keep users informed about important events in apps like messages, alerts, or updates.
💼 Career
Understanding Laravel notifications is key for backend developers building user engagement features.
Progress0 / 4 steps
1
Create the User model with name and email
Create a Laravel User model class with public properties name set to 'Alice' and email set to 'alice@example.com'.
Laravel
Hint
Define a class named User with two public string properties name and email initialized as specified.
2
Create a Notification class with a message property
Create a Laravel Notification class with a public property message set to 'You have a new message.'.
Laravel
Hint
Define a class named Notification with a public string property message initialized as specified.
3
Send a notification to the user
Add a method sendNotification to the User class that accepts a Notification object and sets a public property lastNotification to that object. Then create a User instance and send a Notification instance to it using this method.
Laravel
Hint
Define a method sendNotification in User that saves the notification. Then create instances and call the method.
4
Configure the notification to use the database channel
Add a method via to the Notification class that returns an array with the string 'database' to specify the notification channel.
Laravel
Hint
Add a method named via in Notification that returns an array with the string 'database'.
Practice
(1/5)
1. Why does Laravel use multiple channels like email and database for notifications?
easy
A. Because Laravel requires all notifications to be sent twice
B. To make the code more complex and harder to maintain
C. To ensure notifications reach users through their preferred method
D. To slow down the notification delivery process
Solution
Step 1: Understand notification channels in Laravel
Laravel supports multiple channels like email, SMS, and database to send notifications.
Step 2: Reason why multiple channels are useful
Using multiple channels ensures users get notifications in the way they prefer or can access easily.
Final Answer:
To ensure notifications reach users through their preferred method -> Option C
Quick Check:
Multiple channels = better delivery [OK]
Hint: Multiple channels mean better chances users see notifications [OK]
Common Mistakes:
Thinking Laravel sends notifications twice by default
Believing multiple channels slow down delivery
Assuming complexity is the goal
2. Which of the following is the correct way to send a notification to a user in Laravel?
easy
A. sendNotification($user, 'InvoicePaidNotification');
B. notify($user, new InvoicePaidNotification());
C. Notification::sendUser($user, InvoicePaidNotification);
D. $user->notify(new InvoicePaidNotification());
Solution
Step 1: Recall Laravel notification syntax
Laravel uses the notify method on the user model instance to send notifications.
Step 2: Match the correct syntax
The correct syntax is $user->notify(new NotificationClass()); which matches $user->notify(new InvoicePaidNotification());.
Final Answer:
$user->notify(new InvoicePaidNotification()); -> Option D
Quick Check:
Use notify() method on user [OK]
Hint: Use $user->notify(new NotificationClass()) to send notifications [OK]
Common Mistakes:
Using global notify() function which doesn't exist
Calling Notification::sendUser which is invalid
Passing notification name as string instead of object
3. Given this Laravel notification code snippet:
Notification::send($users, new InvoicePaidNotification());
What happens when this code runs?
medium
A. All users in $users receive the InvoicePaidNotification via their preferred channels
B. Only the first user in $users receives the notification
C. The code throws an error because Notification::send requires a single user
D. Notifications are queued but never sent
Solution
Step 1: Understand Notification::send method
Notification::send accepts a collection or array of users and sends the notification to each.
Step 2: Determine behavior of sending notifications
All users in the $users list receive the notification via their configured channels.
Final Answer:
All users in $users receive the InvoicePaidNotification via their preferred channels -> Option A
Quick Check:
Notification::send sends to all users [OK]
Hint: Notification::send sends to all users in the list [OK]
Common Mistakes:
Thinking only one user gets notified
Assuming Notification::send only accepts one user
Believing notifications are not sent automatically
4. You wrote this code to notify a user:
$user->notify('InvoicePaidNotification');
But the notification is not sent. What is the problem?
medium
A. Notifications require a database channel to work
B. You must pass a notification object, not a string
C. You need to call notify() on Notification facade
D. The notify method only works with arrays
Solution
Step 1: Check notify method parameter type
The notify method expects an instance of a notification class, not a string.
Step 2: Identify correct usage
You should create a new notification object like new InvoicePaidNotification() and pass it.
Final Answer:
You must pass a notification object, not a string -> Option B
Quick Check:
notify() needs notification object [OK]
Hint: Pass new NotificationClass(), not string, to notify() [OK]
Common Mistakes:
Passing notification class name as string
Calling notify on Notification facade instead of user
Assuming database channel is mandatory
5. You want to ensure users receive notifications even if they are offline. Which Laravel feature helps achieve this?
hard
A. Using the database notification channel to store notifications
B. Sending notifications only via email
C. Calling notify() multiple times quickly
D. Using the broadcast channel without queueing
Solution
Step 1: Understand offline notification delivery
Offline users cannot receive real-time notifications but can see stored notifications later.
Step 2: Identify Laravel feature for offline delivery
The database notification channel stores notifications in the database for users to view anytime.
Final Answer:
Using the database notification channel to store notifications -> Option A