gpt4 book ai didi

laravel - 如何检查集合的列是否与数组匹配

转载 作者:行者123 更新时间:2023-12-02 11:14:52 26 4
gpt4 key购买 nike

  • 模型 CustomerDocuments 保存客户文档,doc_id 是此模型中的一列,表示其中存在哪个文档。
  • 我有一组所需的文档 ID,例如 $neededDocs = [1,2,3]

如何检查我的集合 CustomerDocuments 是否在此集合的每个项目中包含 $neededDocs

如果每个 CustomerDocuments.doc_id 中都存在所有 $neededDocs,则返回 true,否则返回 false。

我想使用 collection->contains 来执行此操作,如下所示:

CustomersDocuments::where('customer_id', $customer->id)
->contains('doc_id',$required_onboarding_docs)
->get();

但是这个语法是错误的

最佳答案

我认为您可以通过以下方式实现这一目标:

$documents = CustomersDocuments::where('customer_id', $customer->id)
->get()
->pluck('doc_id')
->toArray();

上面将输出一个包含所有 doc_id 的数组。

return $documents == $neededDocs; 

然后您可以将其与您的 $neededDocs 数组进行比较。

编辑:但是,如果您想要检查集合中的每一行是否包含 $neededDocs 中存在的 doc_id,你可以这样做:

$collection = CustomersDocuments::where('customer_id', $customer->id)->get(); 

return $collection->contains(function($value, $key) use ($neededDocs) {
return in_array($value->doc_id, $neededDocs);
});

我不完全确定你想要哪一个,但这些应该可以解决问题。

关于laravel - 如何检查集合的列是否与数组匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54294515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com