我最近收到了对某类型用户隐藏某页面的请求。为此,我在“用户”表中创建了一个名为“ masters” VARCHAR,NULL的结构。我想在用户希望他看到该页面的用户中输入“ 1”,对于那些看不到它的用户则输入“ 0”。最好的建议是什么?
<li>
<a href="masters">
<i class="now-ui-icons users_single-02"></i>
<p>Materials</p>
</a>
</li>
Route::get('/masters', function () {
return view('masters');
});
答案 0 :(得分:1)
您可以在App\Providers\AuthServiceProvider
public function boot()
{
$this->registerPolicies();
Gate::define('masters', function ($user) {
return $user->masters == "1";
});
}
,然后您的路线将到达。这将隐藏整个页面。
Route::get('/masters', function () {
return view('masters');
})->middleware('can:masters');
如果您想隐藏页面的一部分
@can('masters')
<!-- The Current User Can see this part -->
@endcan
答案 1 :(得分:0)
嗨,我认为您正在使用Laravel,目前,我使用的是另一个框架,因此我忘记了一点语法,因此,您需要定义在注册表格中看到的中间件,并且定义了一个限制对Web应用程序的访问,因此可以对中间件进行录音并观看带有该概念的课程,您可以限制访问,并为来宾和特定用户提供您要显示的内容。
答案 2 :(得分:0)
您要在Blade模板中隐藏HTML块吗?您可以使用条件刀片式服务器来检查用户,如下所示:
@if (Auth::user()->masters)
<li>
<a href="masters">
<i class="now-ui-icons users_single-02"></i>
<p>Materials</p>
</a>
</li>
@endif