diff --git a/src/Illuminate/Notifications/DatabaseNotification.php b/src/Illuminate/Notifications/DatabaseNotification.php index 0dfc7e53015c..14bc9d659f97 100644 --- a/src/Illuminate/Notifications/DatabaseNotification.php +++ b/src/Illuminate/Notifications/DatabaseNotification.php @@ -2,6 +2,7 @@ namespace Illuminate\Notifications; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; class DatabaseNotification extends Model @@ -98,6 +99,28 @@ public function unread() return $this->read_at === null; } + /** + * Scope a query to only include read notifications. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeRead(Builder $query) + { + return $query->whereNotNull('read_at'); + } + + /** + * Scope a query to only include unread notifications. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeUnread(Builder $query) + { + return $query->whereNull('read_at'); + } + /** * Create a new database notification collection instance. * diff --git a/src/Illuminate/Notifications/HasDatabaseNotifications.php b/src/Illuminate/Notifications/HasDatabaseNotifications.php index 981d8e552583..5f999da9a34d 100644 --- a/src/Illuminate/Notifications/HasDatabaseNotifications.php +++ b/src/Illuminate/Notifications/HasDatabaseNotifications.php @@ -21,7 +21,7 @@ public function notifications() */ public function readNotifications() { - return $this->notifications()->whereNotNull('read_at'); + return $this->notifications()->read(); } /** @@ -31,6 +31,6 @@ public function readNotifications() */ public function unreadNotifications() { - return $this->notifications()->whereNull('read_at'); + return $this->notifications()->unread(); } }