toSearchableArray() 向 Algolia 发送相同的 1 行 7 次?

toSearchableArray() send the same 1 row 7 times to Algolia?

此代码从 DB 中检索一个 post,但将其发送 7 次到 Algolia ...

数据库中有 7 个条目

6 条状态为已发布的记录

1 post 状态 = 草稿

public function toSearchableArray()
{
    $array = Post::where('status', '=', static::PUBLISHED)->toArray();
      return $array;
}

我做错了什么??

然后我找到了我的大问题的答案。枚举字段 "PUBLISHED" 变为 true,其他任何东西都为 false,所以 Algolia 现在可以很容易地弄清楚 :-)

这是答案:

$properties = $this->toArray();
$properties['visible'] = $this->status === 'PUBLISHED';

return $properties;

:-) 晚安

toSearchableArray 为每个条目调用。如果您不想为状态设置为 DRAFT 的模型建立索引,您可以 return 一个空数组。

public function toSearchableArray()
{
    if ($this->status === 'DRAFT') {
        return [];
    }

    return $this->toArray();
}