Php Laravel查询,其中列在数组中包含一个或多个关键字

Php Laravel查询,其中列在数组中包含一个或多个关键字,php,laravel,Php,Laravel,我有一系列关键字: arr = ["puppy", "kitty", "baby"]; 我想进行Laravel雄辩的查询,其中id

我有一系列关键字:

arr = ["puppy", "kitty", "baby"];
我想进行Laravel雄辩的查询,其中id<20,并且“subject”具有一个或多个数组值

不知道怎么写这个。我尝试了foreach,但没有成功:

foreach($keywords as $keyword) {
            $firstPageTopics = Article::where('id', '<', 20)->where('type', 'LIKE', '%'.$keyword.'%')->get();
        }
foreach($keywords作为$keyword){

$firstPageTopics=Article::where('id','您可以在
where
闭包中执行循环,并使用
或where
方法将多个条件where链接在一起

Article::where('id', '<', 20)
->where(function ($q) use ($keywords) {
    collect($keywords)->each(function ($keyword) use ($q) {
      $q->orWhere('type', 'like', '%'. $keyword .'%');
    });
})->get();

Article::where('id',”你能解释一下它是如何工作的吗?我试图自己弄清楚,但我对函数中的函数感到困惑,在collect函数中找不到文档。