【问题标题】:Retrieve Laravel Model results based on multiple ID's基于多个 ID 检索 Laravel 模型结果
【发布时间】:2015-04-15 02:35:31
【问题描述】:

我已经在我的Laravel 应用程序中实现了ZendSearch。我将它用作我的搜索引擎,用户将在其中输入搜索词,然后ZendSearch 将返回一个按相关性排序的结果数组。但是,ZendSearch 返回的数组只返回我的记录 ID(它不返回任何实际记录信息)。

接下来查询我的模型以根据 ZendSearch 数组结果检索结果的正确方法是什么,这只是一个基于相关性排序的 ID 数组。

我知道 Model::find(1) 会返回我的 ID 为 1 的记录,但是我如何向 find() 方法提供我希望按我给它的顺序返回的 ID 数组。

【问题讨论】:

  • 想评论为什么投反对票?
  • 又一票否决?为什么? :) laravel 文档甚至没有提及 findMany() 或将数组传递给 find 函数的能力。这怎么不是一个合理的问题? :)
  • 投票给你,这个问题对我有帮助。 :) 我也没有在文档中看到findMany,它在API document 中。
  • @PeterLiang 链接断开,我在 8 上找不到

标签: php laravel eloquent zend-search-lucene relevance


【解决方案1】:

这很简单。使用findMany:

$models = Model::findMany([1, 2, 3]);

顺便说一句,你也可以将一个数组传递给find(),它会在内部调用findMany

$models = Model::find([1, 2, 3]);

在引擎盖下它只是做一个whereIn,所以你也可以这样做:

$models = Model::whereIn('id', [1, 2, 3])->get();

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2016-09-28
    • 1970-01-01
    相关资源
    最近更新 更多