10.6. 删除微博

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

删除微博

现在我们已能够在主页上看到微博动态流的数据展示了。但现在用户还不能删除自己发布过的微博,让我们来加上删除功能。

授权策略

我们需要使用授权策略来对用户进行授权删除的操作,只有当被删除的微博作者为当前用户,授权才能通过。运行下面命令生成微博授权策略。

$ php artisan make:policy StatusPolicy

我们需要在该授权策略中引入用户模型和微博模型,并添加 destroy 方法定义微博删除动作相关的授权。如果当前用户的 id 与要删除的微博作者 id 相同时,验证才能通过。

app/Policies/StatusPolicy.php

<?php

namespace App\Policies;

use Illuminate\Auth\Access\HandlesAuthorization;
use App\Models\User;
use App\Models\Status;

class StatusPolicy
{
    use HandlesAuthorization;

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

因为之前我们已经在 AuthServiceProvider...

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

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

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:1
讨论数量: 6

Johnswing
5.8 版本还需要对授权策略进行配置,方能正常显示删除按钮
1 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
删除按钮不显示
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.7
friendOfTime
不同授权策略类中的相同方法, 框架是怎么识别的呢?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.8
holyLight
点击删除键之后显示 “This action is unauthorized”
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
David_lk
点击删除按钮后报错
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7