来自Blade引擎的@cannot语句不起作用

时间:2016-01-31 13:55:59

标签: laravel-5 blade

我正在尝试在我的模板中使用@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

任何线索?谢谢!

2 个答案:

答案 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