首页 文章

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

提问于
浏览
0

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

我们的想法是让操作员通过Laravel标准注册流程向系统输入第一个和唯一一个用户,该用户将自动成为超级用户 .

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

我像这样定义用户的表,我将'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之间的数字 .

将显示网页的每个部分的内容/视图取决于'user_role'值 .

需要帮助如何:

  • 显示 user-registration page/url 如果用户表中没有定义任何用户 .

  • 每当我需要显示页面的一部分时,我需要检查'user_role' . 怎么实现呢?

1 回答

  • 1

    从您的表结构我假设您在users表中管理角色 . 现在,当您想要为某个部分允许特定角色用户时,只需检查用户的角色即可 .

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

    在刀片模板中,您可以通过以下方式检查 .

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

    如果表中没有用户,则显示注册表单 . 在刀片中,您可以从users表中选择数据,然后检查users表是否为空 .

    <?php $users=App\User::all(); ?>
    
    @if($users ===null)
     <!--users table is empty show registration form-->
    @endif
    

相关问题