我正在尝试在我的模板中使用@cannot,但我有以下问题。使用代码:
@section('content')
@can('upload-images',$flyer)
<form action="{{ URL::to('/') }}/{{ $flyer->zip }}/{{ $flyer->street }}/photos" method="POST" class="dropzone" enctype="multipart/form-data">
{{ csrf_field() }}
</form>
@endcan
@cannot
<p>Not allowed</p>
@endcannot
@stop
@cannot抛出以下错误:
Undefined class constant 'denies'
我知道@cannot存在并且还使用了Gate :: denies,这是我正在采取的错误,这里是Github提交,其中应该发生魔法:
https://github.com/laravel/framework/commit/9c41aa0d53412e3008285e89ff9764fa51b42469
任何线索?谢谢!
答案 0 :(得分:0)
Laravel的文档正在更新。我应该使用@else:
@can(...)
@else
@endcan
@cannot应该用作@can的反面,但不能同时使用:
@cannot(...)
@else
@endcannot
答案 1 :(得分:0)
您忘记了cannot
方法中的输入:
@cannot('upload-images',$flyer)
<p>Not allowed</p>
@endcannot
但是在这种情况下,使用else更为优雅
@can('upload-images',$flyer)
<form action="{{ URL::to('/') }}/{{ $flyer->zip }}/{{ $flyer->street }}/photos" method="POST" class="dropzone" enctype="multipart/form-data">
{{ csrf_field() }}
</form>
@else
<p>Not allowed</p>
@endcan