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

时间:2018-11-08 14:45:43

标签: php laravel authentication laravel-5.7 superuser

需要有关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”值显示网页各部分的内容/视图。

需要帮助的方式:

  1. 如果在用户表中未定义任何用户,则显示user-registration page/url
  2. 每次需要显示页面的一部分时,我都需要检查“ user_role”。如何实现?

1 个答案:

答案 0 :(得分: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

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

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

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