在 null Laravel 上调用成员函数 Roles()

2024-02-26

我正在 Laravel 中使用户角色发挥作用,一切都工作正常,但从任何地方都出现错误:调用成员函数 Roles() 或 null。

这是我发送请求的 html:

<td><input type="checkbox" {{ $user->hasRole('User') ? 'checked' : '' }} name="role_user"></td>
<td><input type="checkbox" {{ $user->hasRole('Author') ? 'checked' : '' }} name="role_author"></td>
<td><input type="checkbox" {{ $user->hasRole('Admin') ? 'checked' : '' }} name="role_admin"></td>

然后是我在模型用户和模型角色之间建立关系的函数,以及我检查角色的函数:

 public function roles(){
        return $this->belongsToMany('App\Role','role_user','user_id','role_id');
    }

  public function hasAnyRole($roles){
        if(is_array($roles)){
            foreach ($roles as $role){
                if($this->hasRole($role)){
                    return true;
                }
            }
        }else{
            if($this->hasRole($roles)){
                return false;
            }
        }
        return false;
    }


    public function hasRole($role){
        if($this->roles->where('name',$role)->first()){
            return true;
        }
        return false;
    }

最后,我分配新角色的功能:

public function postAdminAssignRoles(Request $request)
    {
        $user = User::where('email', $request['email'])->first();
        $user->roles()->detach();
        if ($request['role_user']) {
            $user->roles()->attach(Role::where('name', 'User')->first());
        }
        if ($request['role_author']) {
            $user->roles()->attach(Role::where('name', 'Author')->first());
        }
        if ($request['role_admin']) {
            $user->roles()->attach(Role::where('name', 'Admin')->first());
        }
        return redirect()->back();
    }

我不知道为什么现在不起作用,因为到目前为止一切都工作正常。有任何想法吗?


我猜错误发生在postAdminAssignRoles method.

您尝试获取的电子邮件的用户可能在数据库中不存在,因此调用first()方法返回 null。

您可能想使用firstOrFail()而是清楚地看到电子邮件无效。或者在获取模型后first() add if (! $user) { ... }并执行任何操作,例如重定向,以防您不想显示错误。

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

在 null Laravel 上调用成员函数 Roles() 的相关文章

  • 使用 PHP 和 xpath 中的抓取功能提取 HTML 页面中的字符串

    我需要抓取这个 HTML 页面 https www sanita puglia it monitorpo aslfg monitorps web monitorps monitorPSperASL do codNazionale 16011
  • PHP 如何使用比较运算符比较字符串?

    我正在使用比较运算符来比较字符串 我需要对以下两个比较及其结果进行某种解释 if ai gt i echo Yes else echo No output No 为什么这些会这样输出 if ia gt i echo Yes else ech
  • “路径不能为空”laravel

    我想将 pdf 文件保存在存储文件夹中 但是当我在表单中插入文件并单击按钮时 它会显示错误 路径不能为空 然而 路径并不空 这是我可以执行此操作的函数 public function getFilenametostore Request r
  • 404 路由无法匹配请求的 URL

    我刚刚开始学习zend 框架 questions tagged zend framework并遵循此用户指南 http framework zend com manual 2 3 en index html 我能够成功安装zend skel
  • 文件再次获取内容不起作用替代方案

    我尝试了curl 因为file get contents在php中不起作用 任何人都可以给我解决方案 所以使用curl解决它 这里是代码 userData json decode file get contents https graph
  • Laravel 5:在没有 Composer 的情况下安装 Form 和 HTML 类

    我有兴趣在 Laravel 5 上安装 Form 和 HTML 类 而不需要 Composer 我怎样才能做到这一点 对于那些想说服我使用作曲家的人 1 我想通过自己手动至少一次来看看它的作用 2 我的主机上没有作曲家 3 使用compos
  • 使用PHP将图像旋转45度时如何避免黑色背景?

    您好 我必须先翻转缩略图 然后才能将其与另一个 jpeg 文件合并 但是当我使用 php ini 旋转 45 度时它显示黑色背景 我怎样才能避免这种情况 任何机构都可以帮助我 好吧 如果您要生成 jpg 请使用 PHP GD 将背景颜色设置
  • 如何从外部域设置 iframe 内部的样式?

    我有一个网站 其中嵌入了来自 3 个不同域的 3 个 iframe 每个 iframe 都位于单独的页面上 将样式表应用于所有 3 个 iframe 的最佳方法是什么 谢谢你 这可以在某些网站上完成 但由于 同源政策 而并非全部 Twitt
  • CakePHP:无法访问 MySQL 数据库

    我是 CakePHP 的新手 刚刚完成配置过程 但很困惑为什么 Cake 无法访问我的 MySQL 数据库 Cake 信息页面显示我的 tmp 目录是可写的 FileEngine 正在用于缓存 不知道这意味着什么 并且我的数据库配置文件存在
  • Laravel 按特定值对结果进行排序

    我有这行从数据库获取结果的代码 clanMembers gt User find Auth user gt clan id gt where clan id Auth user gt clan id gt orderBy username
  • 检查 PHP 数组中哪一天不可用

    我有一个由 7 天名称组成的数组 这个数组每次都是动态的 所以我想检查数组中缺少哪一天 对于前 周一 周二 周四 周五 周六 周日 此处缺少星期三 因此输出应为星期三 有时会丢失多于一天 有时则没有 因此输出应该是包含所有丢失天数的数组 您
  • PHP 中的依赖注入

    我一直在研究依赖注入 我是在关注某件事还是完全没有关注 代码是好是坏 依赖注入与否 下面的代码是CMS系统的基础 现在有一个名为 page details 的表 其中存储了所有网页 目录 文件结构 htaccess index php cl
  • 使用PHP将大文件上传到谷歌云存储

    我正在尝试将大文件从服务器上传到云存储 文件超过 500mb 但 PHP 超时 我尝试查看 Google 客户端库文档 并在 stackoverflow 中进行爬行 但找不到任何可以帮助我的内容 还有有什么办法可以跟踪上传进度吗 这是我目前
  • mysql 触发器与 php 脚本

    我有下一个 mysql 触发器 DELIMITER CREATE TRIGGER Test Insert BEFORE INSERT ON sat clientLocation FOR EACH ROW BEGIN DECLARE cmd
  • Highcharts 异步服务器加载多个系列

    我正在尝试按照其示例使用 Highcharts 的延迟加载 http www highcharts com stock demo lazy loading http www highcharts com stock demo lazy lo
  • python 格式日期时间,带有“st”、“nd”、“rd”、“th”(英文序数后缀),如 PHP 的“S”

    我想要一个 python datetime 对象来输出 并在 django 中使用结果 如下所示 Thu the 2nd at 4 30 但我在python中找不到输出的方法st nd rd or th就像我可以使用 PHP 日期时间格式一
  • 如何使用 mod rewrite / htaccess 创建具有两个或多个参数的友好 URL?

    新手在这里重写Mod 我想在 URL 中传递两个 URL 参数 但采用更友好的格式 如果用户通过 example com blah123 sys 在本例中我应该能够提取 MySQL 记录 blah123 和模式类型 sys 这是例子 URL
  • 如何使用 php $row 检索 sql 日期时间对象?

    例如 sql SELECT FROM db query sqlsrv query conn sql while row sqlsrv fetch array query echo row date column 会崩溃 我找到的大多数答案都
  • npm run dev 和 npm run production 之间的区别

    我对 Laravel 和 vue js 很陌生 请让我知道它们之间有什么区别npm run dev and npm run production 这和环境有关系吗 npm run dev创建源映射并且不会缩小 js css 这使得调试和查找
  • 如何使用 PHP 读取/显示 XML

    有没有办法使用 PHP 读取 external xml 来自不同网站的 xml 文件 我知道有一种方法可以使用 JavaScript 读取 XML 但前提是它们都位于同一根目录中 您能否提供有关如何获取 xml 文件的示例 然后阅读以下内容

随机推荐