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”值显示。

需要帮助如何:

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

1 回答 1

1

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

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
于 2018-11-08T16:28:03.840 回答