隐藏页面给特定用户

时间:2020-04-10 23:47:26

标签: php html laravel

我最近收到了对某类型用户隐藏某页面的请求。为此,我在“用户”表中创建了一个名为“ 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');
});

3 个答案:

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