Laravel 5 与 entrust - hasRole 不起作用

2024-01-28

我有一个登录用户,这里的代码有效:

@if( Auth::check() )
Logged in as: {{ Auth::user()->firstname }} {{ Auth::user()->lastname  }}
@endif

我正在使用 zizaco/entrust,一切正常。我已经创建了角色和权限,并为我的用户授予了具有管理权限的管理员角色。

那么为什么这不起作用:

$user = Auth::user();
print_r($user->hasRole('admin'));

如果我 print_r $user 我可以看到 Auth 用户已加载,但 hasRole 不起作用。我当时只是在刀片模板中测试这一点,但在控制器中尝试了它,得到了相同的结果。我的错误是:

BadMethodCallException in Builder.php line 1992:
Call to undefined method Illuminate\Database\Query\Builder::hasRole()

我的用户模型:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Zizaco\Entrust\Traits\EntrustUserTrait;

class User extends Model {
  use EntrustUserTrait;

   protected $table = 'users';
   public $timestamps = true;

   use SoftDeletes;

   protected $dates = ['deleted_at'];

}

UPDATE

当我以这种方式查找用户时,我意识到 hasRole 对我有用(返回 App\Models\User 对象):

$user = \App\Models\User::find( \Auth::user()->id );

但当我以这种方式找到用户时则不然(返回 App\User Object ):

$user = \Auth::user();

我宁愿认为它会以另一种方式工作,当我拉出 App\User 时,我可以访问 hasRole,但不一定在我搜索用户时访问。我认为 hasRole 可以直接从 Auth::user() 工作,而不必使用用户模型查找用户......???


发现问题了..

在 config/auth.php 我有

'model' => 'App\User',

我的命名空间需要

'model' => 'App\Models\User',
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5 与 entrust - hasRole 不起作用 的相关文章

  • URL::forceSchema 在登录前不起作用

    我在用着URL forceSchema https 在我的 Laravel 5 3 应用程序上强制使用 SSL 然而 它只有在登录后才有效 即使登录页面没有被 https 覆盖 我在用着可信代理 https github com fidel
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 如何在 Laravel 视图中找到当前语言?

    我正在使用 Laravel Lang 类来本地化我的网络应用程序 我已将两种语言添加到语言数组中application config application php 这会将用于本地化的默认语言更改为 URI 第一部分指示的任何内容 例如 b
  • 我需要在服务器上安装 Composer 吗?

    我正在尝试部署 Laravel 应用程序 想知道 Composer 是否需要单独安装在服务器上 不 您可以在单独的服务器上构建应用程序 或者在团队中工作时在开发计算机上不太理想 然后将项目 包括已安装的供应商 复制到您的服务器上 事实上 在
  • Laravel - 删除整个集合

    我有文章的图像 当我更新文章时 我想检查图像是否相同 如果不是 我想删除它们 但如果可能的话 我想删除整个集合而不进行其他查询 诸如此类就像我在下面的代码中一样 images gt delete 这是我的功能 images Media wh
  • ASP.NET Core 2.0禁用自动质询

    将我的 ASP NET Core 项目升级到 2 0 后 尝试访问受保护端点不再返回 401 而是重定向到 不存在的 端点以尝试让用户进行身份验证 应用程序所需的行为只是返回 401 以前我会设置AutomaticChallenge fal
  • 从 swagger UI 将 Jwt 令牌作为不记名令牌传递到标头中不起作用

    我正在生成 jwt 令牌 Web api 核心应用程序 在应用程序中 我使用 swagger 并应用了不记名令牌身份验证 但是当我尝试从 swagger UI 传递不记名令牌时 我收到 401 错误 请有人帮助我解决这个问题 service
  • Amazon S3:奇怪的错误 - “有时”签名不匹配,有时确实如此

    我正在为销售人员开发代码 我们正在使用 Appexchange 的 Force com for Amazon Web Services 应用程序 该应用程序由亚马逊提供 我正在计算机上从 Amazon S3 下载文件 有时我会收到下面提到的
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • CORS 问题从 React 应用程序 > 节点服务器 > 重定向到 Google OAuth2 身份验证发出 AJAX 请求

    大家好 过去两天我一直在绞尽脑汁研究这个问题 但没有运气 这是我在尝试从我的 React 应用程序 localhost 3000 使用 Google Oauth2 Passport 策略进行身份验证时遇到的错误 我正在 localhost
  • Laravel 5.4^ - 如何自定义通知电子邮件布局?

    我正在尝试自定义通过电子邮件发送通知时使用的 HTML 电子邮件布局 我已经发布了邮件和通知视图 php artisan vendor publish tag laravel mail php artisan vendor publish
  • Heroku 上的 Google Vision API 身份验证

    在 Heroku 上验证 Vision API 的最佳 简单方法是什么 在开发中我只使用 vision Google Cloud Vision new project instacult keyfile path to keyfile js
  • 开始使用 Chef,并在部署时运行 Composer 安装

    我们希望部署一些Laravel4 http laravel com使用 OpsWorks 在亚马逊上基于 PHP 应用程序 这需要满足以下条件 从 git 抓取代码 从 getcomposer com 下载composer phar Run
  • 没有适用于机器人的 Laravel 会话

    我在大型 Laravel 项目和 Redis 存储方面遇到问题 我们将会话存储在 Redis 中 我们已经有 28GB 的 RAM 然而 它的运行速度仍然相对较快 达到了极限 因为我们有来自搜索引擎机器人的大量点击 每天超过 250 000
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • Laravel 经过身份验证的动态子域路由

    我正在尝试让经过身份验证的子域路由适用于某些特定的变量子域 app example com staging app example com testing app example com 这些应该由 auth 中间件来保护 它们本质上都参考
  • 安全网络登录示例/教程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 为 Web 应用程序创建登录表单的方法有很多种 但大多数方法都存在这样或那样的缺陷 密码以明文形式传输
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum

随机推荐