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

Laravel-属性在此集合实例上不存在

杜俊远
2023-03-14

在我的用户模型上,我有一个查询,它给我“属性[manager_id]在此集合实例上不存在”错误。我想这是因为expiringUser的集合没有一个属性manager_id,但是我不确定如何在查询中循环访问expiringUser。

我试图返回的是他们的ID与到期manager_id匹配的经理集合。

public function scopeManagers()
    {   

        $expiringUsers = $this->ExpiringContractors(); // This returns a collection of users
        return $mangers = $this->where(function($query) use ($expiringUsers){
                    $query->where('id', $expiringUsers->manager_id);
                })->get();



    }

共有1个答案

潘志国
2023-03-14

你自己已经说过了...如果$expiring用户是一个集合,则在不循环的情况下无法访问manager_id,但在这种情况下实际上不必这样做。如果你想查询id是否匹配任何manager_id,你可以通过一个,其中In()子句,结合pluck()方法:

$query->whereIn('id', $expiringUsers->pluck('manager_id'));

而且,您的代码可以简化为:

public function scopeManagers(){ 
  return $this->where(function($query){
    $query->whereIn('id', $this->ExpiringContractors()->pluck('manager_id'));
  })->get();
}

注意:ExiringCoutors实际上应该是ExiringCoutors;函数名通常是camelCase

 类似资料:
  • 使用方法时 此集合实例上不存在属性[getAddress]。 使用方法后 此集合实例上不存在属性[city]。

  • 问题内容: 我正在关注Laracasts的视频:基本模型/控制器/视图工作流程。 我的桌子上有联系方式。 我正在尝试使用控制器文件中的以下代码传递数据以进行查看: 当我尝试显示如下所示的代码时, 我收到错误提示: 该集合实例上不存在属性[title]。(视图:E:\ laragon \ www \ newsite \ resources \ views \ about.blade.php) 但是,

  • 我无法通过下面的示例了解如何快速加载。这是我当前的数据库,有两个表,Quotes:存储一般信息的地方,QuotesDetails:存储Quotes中每个Quote的详细信息的地方。 在模型中,我有以下结构: 引用。php QuotesDetails.php以下型号: 我使用了hasMany(引号中),因为每个引号可以有/显示3-4个quotesdetails。 在我的控制器中,我使用以下查询: 在

  • 我试图在Laravel建立一个电子商务网站,但我得到的错误是“在雄辩的构建器实例上不存在异常属性[product_quantity]当我试图更新数据库中的产品数量时。 基本上,我想做的是,如果一个用户试图添加一个已经存在于他们购物车中的产品,数量会增加1,产品的总价格也会相应地改变。为了实现这一点,我首先用 “StoreCart”是用于存储购物车数据的型号名称。然后在查找查询之后,我所做的是 当我

  • 所以我建立了两个类:1。实现可比2的类型。流派管理器,它获取流派集合并创建其内部副本。在GenerManager的后面,我需要通过输入一个名字来添加新的类型,我需要给这个类型分配下一个自由id号,基本上是最小使用id后的下一个最小正数。 我试图使用Collections.sort()排序我的列表,但我得到以下错误:没有实例类型变量T存在,以便集合符合列表...我试着准备了一堆关于这个的帖子,但没能

  • 我正在尝试测试boot()static::deleting方法,该方法在通过Eloquent删除模型时应该触发。 tinker

  • 我正在用Laravel 5.2开发一个Web应用程序,但有一个问题我无法解决。 我有一个扩展了雄辩模型的模型,但当我试图输出带有“where”的数据库表时,例如 它返回一个包含许多信息的集合,这些信息此时对我来说无用,比如“守卫”、“键入”...我的表的数据在“属性”下。遵循laravel的指南,我看到每个人都像我一样简单地使用它,然后用

  • 我在尝试创建将keyup事件转换为可观察流时遇到问题。 我正在学习Ng书籍第6版。我被困在一个示例中,在您键入时搜索YouTube视频。当搜索返回时,我们将显示视频缩略图结果列表,以及每个视频的描述和链接。 因此,我们使用observable.from事件:https://github.com/NiLinli/ng-book2-angular-6-r68-code-samples/blob/mas