6.7. 删除帖子

帖子删除

接下来我们开发帖子的删除功能:

file

1. 权限控制

我们将只允许作者删除话题,需要修改下授权策略类里的 destroy() 方法:

app/Policies/TopicPolicy.php

<?php
.
.
.

class TopicPolicy extends Policy
{
    .
    .
    .

    public function destroy(User $user, Topic $topic)
    {
        return $topic->user_id == $user->id;
    }
}

发现我们一直在重复:

$topic->user_id == $user->id

并且此代码的可读性不高,我们可以优化一下:

app/Models/User.php

<?php
.
.
.
class User extends Authenticatable implements MustVerifyEmailContract
{
    .
    .
    .

    public function isAuthorOf($model)
    {
        return $this->id == $model->user_id;
    }
}
...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 9

Jason2018
为什么本地响应速度都那么慢,5、6 秒才能打开网页??
0 个点赞 | 19 个回复 | 问答 | 课程版本 5.5
冷无缺
帖子详情页面,按钮样式问题?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
九九
@can ('update', $topic) 退出登录后 update 策略报错
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
duke666
删贴的时候怎么把编辑器上传的图片一起删掉
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
chihokyo
后续是否有关于软删除的用法
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
sde_wang
Laravel 授权策略提供的 @can Blade 命令?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
beatles
可不可以将 topic 的 update 和 destroy 授权合并成一个 方法
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
bossaiguo
帖子下面的回复也要删除吧!
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7