6.7. 删除帖子

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

帖子删除

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

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 网站上。

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

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:1
讨论数量: 1

sde_wang
Laravel 授权策略提供的 @can Blade 命令?
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5