我的应用程序中有一个场景,如果日期已过期,我必须限制功能。例如,如果我将限制字段“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
感谢您的帮助。
答案 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()
,我建议您将其放在单独的中间件中。