5.7. 删除帖子
帖子删除
接下来我们开发帖子的删除功能:
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
{
.
.
.
public function isAuthorOf($model)
{
return $this->id == $model->user_id;
}
}
重构下 TopicPolicy,代码阅读起来顺口多了...