Laravel 5.7 - 如何定义一个超级用户来管理所有用户注册

Laravel 5.7 - how to define a super user to manage all users registration

需要一些有关 Laravel 用户身份验证的帮助。我对 Laravel 的了解很少,我的经验是基于 raw/pure PHP 部署 Web 应用程序(从未使用过该框架)。

想法是让操作员通过Laravel标准注册流程向系统输入第一个也是唯一一个用户,这个用户将自动成为超级用户。

超级用户功能是通过创建用户和密码并定义普通用户的角色来管理普通用户注册(在超级用户会话中)。

我这样定义用户的table,我加'user_role'栏来区分用户之间的角色

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->char('user_role')->nullable();
        $table->rememberToken();
        $table->timestamps();
    });

'user_role'超级用户的值必须是0,而另一个普通用户角色应该是1-9之间的数字。

content/views 网页的每个部分将根据 'user_role' 值显示。

需要帮助:

  1. 显示user-registration page/url if none users defined in the user's table.
  2. 每次我需要显示页面的一部分时,我都需要检查 'user_role'。如何实现?

根据您的 table 结构,我假设您在用户 table 中管理角色。现在当你想允许某个部分的特定角色用户时,只需检查用户的角色。

if(Auth::user()->user_role==0){
 //do something its super user
  }

在blade模板中,您可以通过以下方式查看。

@if(Auth::user()->user_role==0)
<!--do some thing, its super user-->
@endif

如果 table 中没有用户,则显示注册表。在您的 blade 中,您可以 select 来自用户 table 的数据,然后检查用户 table 是否为空。

<?php $users=App\User::all(); ?>

@if($users ===null)
 <!--users table is empty show registration form-->
@endif