定义评论的政策删除检查评论作者或帖子作者(laravel)

时间:2016-07-21 14:35:44

标签: laravel comments acl posts policy

如何启用帖子的作者和评论的作者来删除它? 我的意思是,帖子的作者可以删除帖子下的每条评论,而评论的作者只能删除他留下的评论。

到目前为止,我有一个这样工作的commentPolicy类:

class CommentPolicy
{
    public function deleteComment(User $user, Comment $comment)
    {

        return $user->id === $comment->user_id;

    }

}

当然这适用于评论的作者。我在想的是我应该让帖子的作者删除postPolicy类中的注释。我在那里有:

class PostPolicy

{

    public function seePostOptions(User $user, Post $post)
    {
        return $user->id === $post->user_id;
    }


}

现在帖子的作者可以看到一些选项来编辑/删除/评论帖子。 我想也许我应该只放两个@can('deleteComment', $c)<>delete button<>@endcan@can('seePostOptions' $i)<>delete button<>@endcan但这将导致帖子的作者留下的所有评论的双重按钮。

1 个答案:

答案 0 :(得分:0)

解决方案是使用@else指令,如下所示:

@can('deleteComment', $c)
<p>delete</p>
@else
@can('seePostOptions', $i)
<p>delete</p>
@endcan
@endcan