【问题标题】:Property [colors] does not exist on this collection instance此集合实例上不存在属性 [colors]
【发布时间】:2021-12-16 23:37:10
【问题描述】:

我有一个像这样的过滤器表。

过滤器表

当我想去编辑过滤器页面时。我看到了这个错误。

此集合实例上不存在属性 [colors]。

public function edit(Filter $filter)
{
    $colors = Color::all();
    $categories = Category::lists();
    $filters = Filter::groupBy('category_id')->get();
    dd($filters->colors);
    return view('Admin.filters.edit', compact('categories', 'colors', 'filter', 'filters'));
}

过滤器.php

public function colors()
{
    return $this->belongsToMany(Color::class);
}

【问题讨论】:

  • 您的代码中的任何内容都不会出现该错误,您有查看代码吗?
  • @mahmoud 您已经编辑了您的问题以提出与原始问题完全不同的问题。如果您有新问题,请提出新问题;但不要像这样编辑现有的。标题甚至不再适用,您的“编辑”包括原始错误的解决方案..

标签: php laravel


【解决方案1】:

->get() 返回一个模型集合。

试试dd($filters->firstWhere('name', 'Color'))

Read more here

【讨论】:

  • 我替换了这个代码dd($filters->firstWhere('name', 'Color'));。但我看到null
  • 您的groupBy 可能在干扰。我认为默认行为是获取组中的第一个匹配项,因此 name 将是“品牌”。
  • @Jørgen - 我更新了我的帖子
猜你喜欢
  • 2020-11-12
  • 2019-03-23
  • 2020-07-11
  • 2017-05-12
  • 2018-10-12
  • 2021-02-08
  • 2021-09-14
相关资源
最近更新 更多