使用 can 标签判断是否有删除回复的权限会导致 N+1 问题,有什么更好的办法吗?
@can('destroy', $reply)
<span class="meta pull-right">
<form action="{{ route('replies.destroy', $reply->id) }}" method="post">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" class="btn btn-default btn-xs pull-left">
<i class="glyphicon glyphicon-trash"></i>
</button>
</form>
</span>
@endcan
这样写会导致每一条回复都去查找一次数据库
有什么更好的办法吗
传递$topic 就不用关联查询了,但是删除按钮的表单是 注入模型 ID 给路由的,要改路由很麻烦,所以新增一个授权方法,跟destroy分开。
最后是 ReplyPolicy.php