2016-07-21 7 views
0

Как вы можете включить как автора сообщения, так и автора комментария для его удаления? Я имею в виду, что автор сообщений может удалить каждый комментарий под своим сообщением, в то время как автор комментария может удалить только те комментарии, которые он оставил.определить политику для комментариев, удаляющих проверку авторских прав или автора сообщения (laravel)

До сих пор у меня есть класс 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, но это приведет к двойной кнопке для всех тех комментариев, оставленных автором сообщения под его сообщением.

ответ

0

решение использует @else директиву так:

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