传递多个ID,仅在Laravel中获取第一条记录

时间:2017-06-13 11:12:36

标签: php laravel laravel-5.3 laravel-5.4

如何在Laravel中仅使用多个ID获取第一条记录?在以下代码中,$ids有三个元素。我想使用这三个ID从表中获取第一条记录。

$ids = [16, 18, 20];

$listing = Listing::whereIn('id', $ids)->first();

4 个答案:

答案 0 :(得分:0)

您可以使用laravel的限制或最旧功能,请参阅以下查询

  $listing = Listing::whereIn('id', $ids)->limit(1)->get(); //using limit
    OR
  $listing = Listing::whereIn('id', $ids)->oldest('id')->first(); //using oldest()

答案 1 :(得分:0)

如果你想获得id最小的第一个对象,你可以这样做:

$listing = Listing::whereIn('id', $ids)->oldest('id')->first();

但最好这样做:

$listing = Listing::find(min($ids));

如果要获取数组中第一个ID的对象,请执行以下操作:

$listing = Listing::find($ids[0]);

答案 2 :(得分:0)

执行此操作的一种可能方法是对id列进行排序,如下所示:

$listing = Listing::whereIn('id', $ids)->orderBy('id')->first();

答案 3 :(得分:0)

我想你应该试试这个:

$ids=[16,18,20];

foreach($ids as $id){
  $listing[] = Listing::where('id', $id)->first();
}

希望这对你有用!