截止日期过后,限制功能可用性(显示或隐藏按钮)

时间:2016-11-19 16:22:05

标签: laravel laravel-5

我的应用程序中有一个场景,如果日期已过期,我必须限制功能。例如,如果我将限制字段“2016-11-20”设置为“添加您的日记”按钮将在“2016-11-20”时间过后消失或抛出错误。如何在Laravel 5.3中做到这一点?如果可能的话,我想使用门票或政策。

版本表迁移:

Schema::create('edition', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('volume');
            $table->text('cover')->nullable();
            $table->integer('number');
            $table->date('limit')->nullable();
            $table->timestamps();
        });

按钮视图:

@if (Auth::check() && Auth::user()->level == 'author')
                                <div class="tombol-nav">
                                    <a href="../journal/create?edition={{$edition->id}}" class="btn btn-primary">Add Your Journal</a>
                                </div>
                                @endif

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您确实应该使用Gate Facade。关于如何在刀片上使用它的问题documentions

你可以create policy并拥有类似的内容。

Gate::define('add-journal', function ($user, $edition) {
     $limit = $edition->limit 
     return (time() < $limit)
}); 

然后在您的视图中,您可以使用刀片

@can('add-journal', $edition)
    <div class="tombol-nav">
        <a href="../journal/create?edition={{$edition->id}}" class="btn btn-primary">Add Your Journal</a>
    </div>
@endcan

作为旁注,对于您的Auth::check(),我建议您将其放在单独的中间件中。