当前位置: 首页 > 知识库问答 >
问题:

Laravel重复查询用户

范承望
2023-03-14

调试栏读取

执行了368条语句,其中360条是重复的,8条是唯一的

事实证明,每次检查我的用户,通过auth()-

即。

    public function hasRole($role)
    {
        // If the user has the 'admin' role, always authorize
        if ($this->roles()->where('name', 'customer')->first() !== null) {
            return true;
        }

        return null !== $this->roles()->where('name', $role)->first();
    }
    // Check for admin
    public function isCustomer()
    {
        return $this->hasRole('customer');
    }

如何将这些信息安全地缓存在用户对象上,使数据库不会每次都被跟踪?

我还在这个项目上使用了404labfr/laravel-模拟函数(所以当你是管理员时,你可以模拟其他用户)。


共有1个答案

关玮
2023-03-14

我认为您可以使用以下方法将查询减少一半:

public function hasRole($role)
{
    return null !== $this->roles()->whereIn('name', ['customer', $role])->first();
}
 类似资料:
  • 我找不到连接多个db和链sql查询的方法, 如何使用原始mysql语法? 如何使用拉威尔方法?

  • 问题内容: 当我这样做时(在laravel中): 它说: SQLSTATE [HY093]:无效的参数号(SQL:SELECT * FROM my_table,其中id =:id || id =:id) 但是当我这样做时(使用纯PHP): 成功了。我究竟做错了什么? PS显然,遇到问题时我运行的查询更有意义。 UPD 或多或少的真实查询: 问题答案: 从我所看到的一切都可以归结为无法处理命名参数。

  • 我有下面的列在我的熊猫数据帧 我想过滤掉Loan和Loan记录Loan

  • 我已经创建了三个表。一个是< code >期中,另一个是< code >期末,最后一个是< code >成绩。 它们中的每一个都有列:学生ID、学生姓名、分数、课程ID。 这意味着所有表格中都有相同的学生,ID相同,但分数不同。我想从所有三个表中检索、查询Student_ID、Student_Name和Scores。但当我这样做的时候,会有很多重复。一个学生可以有一个ID,但有许多课程,所以有许多

  • 在我的Laravel5.4项目中,我试图从模型文章和状态之间的关系中获取一些数据。关系类型为OneToMany,其中Article具有一个状态,Status具有多个项目。 为了获取想要的数据,我迭代通过模型文章项目的集合,这些项目是eagerLoade连同模型/关系状态一起借助方法。第一次迭代构建了一个正确的查询,但是在每次迭代中,它都会追加由方法