首页 > 解决方案 > 如何使用 Laravel 显示数据库通知?

问题描述

我想显示属于单个用户的所有通知。CandidateNotificationsController.php 文件:

public function index()
    {

        $notifications = Auth::user()->notifications();

        return response()->json($notifications, 200);
    }

但是当我dd(Auth::user());得到的只是用户时,那里没有通知表关系。

use Illuminate\Notifications\Notifiable;通过将and添加到我的用户模型中,我已经成功地创建了通知,use Notifiable;但是我在获取和显示它们时遇到了麻烦。

我很困惑,我是否需要创建一个 Notifications.php 模型,然后创建 Notifications 和 Users 之间的关系?我认为这是默认使用 Laravel 完成的?

标签: laravel

解决方案


您可以使用以下User::$notifications属性访问通知集合:

$notifications = Auth::user()->notifications;

通过使用该User::notifications()方法,您将获得一个Eloquent 查询构建器的实例,您可以在实际从数据库中获取它们之前使用它来进一步约束关系的结果:

$notifications = Auth::user()->notifications()->limit(5); // Will limit the SQL query to 5 results

推荐阅读