「分享」自己写的标记单条消息为已读

routes/api.php

// 标记单条消息通知为已读
$api->put('user/read/notifications/{notification}', 'NotificationsController@readSingle')
    ->name('api.user.notifications.readSingle');

app/Http/Controllers/Api/NotificationsController.php

    //标记单个消息通知为已读
    public function readSingle(DatabaseNotification $notification)
    {
        $this->user()->decrement('notification_count');
        $notification->markAsRead();
        return $this->response->noContent();
    }

测试:
file

数据库notifications表:
file

日拱一卒
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
黑哈尔

@hustnzj
加了个判断,不然未读数为0的话会报sql错误。

file

app\Http\Controllers\Api\NotificationsController.php

    public function readSingle(DatabaseNotification $notification)
    {
        if (!$notification->read_at) {
            $this->user()->decrement('notification_count');
            $notification->markAsRead();
        }
        return $this->response->noContent();
    }
4年前 评论

还需要确认该通知是否属于user,不然会误操作,需要做个权限判断

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!