Php 通过多个ID,仅在Laravel中获取第一条记录

Php 通过多个ID,仅在Laravel中获取第一条记录,php,laravel,laravel-5.3,laravel-5.4,Php,Laravel,Laravel 5.3,Laravel 5.4,如何在Laravel中使用多个ID仅获取第一条记录?在下面的代码中,$ids有三个元素。我想使用这三个ID从表中获取第一条记录 $ids = [16, 18, 20]; $listing = Listing::whereIn('id', $ids)->first(); 您可以使用laravel的limit或OLASTE函数,请参见下面的查询 $listing = Listing::whereIn('id', $ids)->limit(1)->get(); //using

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

$ids = [16, 18, 20];

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

您可以使用laravel的limit或OLASTE函数,请参见下面的查询

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

如果要获取第一个id最小的对象,可以执行以下操作:

$listing = Listing::whereIn('id', $ids)->oldest('id')->first();
但最好这样做:

$listing = Listing::find(min($ids));
如果要获取具有数组中第一个ID的对象,请执行以下操作:

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

一种可能的方法是对id列进行如下排序:

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

我想你应该试试这个:

$ids=[16,18,20];

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

希望这项工作为你

使用
latest()
OP将获取最后一个对象,而不是第一个。您可以使用最早的对象而不是最新的对象,我已更新了应答器使用
Listing::where('id',$ids[0])->get()