【问题标题】:Laravel 5.5 - Only Get Admin UsersLaravel 5.5 - 只获取管理员用户
【发布时间】:2018-07-27 05:15:47
【问题描述】:

我正在像这样的 Laravel 5.5 控制器中获取用户详细信息...

$user = Auth::user();

但我想检查一下用户是否将“user_type”设置为“admin”

我知道我可以在获得用户信息后进行进一步检查,但有没有办法将其合并到一个语句中?

【问题讨论】:

  • 喜欢?:$user = Auth::user()->user_type=='admin' ? 'Auth::user() : ''
  • 您是否为用户及其角色使用了 2 个不同的表?

标签: php laravel


【解决方案1】:

如您所见here,用户的默认迁移没有 user_type。因此,如果你想给用户一定的权限,你必须先创建它。

我建议使用开箱即用的软件包。您可以(例如)使用包 laravel permissions and roles (by Spatie) 为您完成工作。

【讨论】:

    【解决方案2】:

    在用户模型中创建一个方法:

    public function isAdmin()
    {
        return $this->user_type === 'admin';
    }
    

    然后在代码中的任何地方使用它:

    if (auth()->user()->isAdmin())
    

    或者只是每次手动操作:

    if (auth()->check() && auth()->user()->user_type === 'admin')
    

    你甚至可以create a global helper 这样做:

    @if (isAdmin())
    

    【讨论】:

      【解决方案3】:

      这样你就可以检索到认证用户的user_type

      $user = Auth::user()->user_type;
      

      【讨论】:

        猜你喜欢
        • 2018-10-18
        • 1970-01-01
        • 1970-01-01
        • 2018-02-03
        • 2023-03-03
        • 2019-02-13
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多