获取具有多个 id 的单个查询中的所有行

get all rows in single query with multiple id

我有一个 asset_request table 字段 idrequest_id.
我想 select 具有特定 ID 的多行。

$ids = $request->ids // 5,6

我只想 select 请求中 ID 为 5 和 6 的行 table

$ids = $request->ids;
$asset_request = asset_request::whereIn('id',array($ids))->first(); //gets only 6th row.

我需要获取与给定 ID 匹配的所有行。

DB::table('asset_request')
           ->whereIn('id', (array) $request->ids)
           ->get();

TableModel::whereIn('id', (array) $request->ids)->get();

在与 Op 聊天讨论后澄清:

Op 正在传回一个字符串请求,因此,Op 需要更改以下内容:

$id = $request->id;

$ids = str_split(str_replace(',', '', $id));

$asset_request = asset_request::whereIn('id', $ids)->get();

首先,您正在调用 first 方法,该方法 return 只有第一行匹配。
您需要调用 get 方法来匹配所有行。

其次,如果您将 ids 作为逗号分隔的字符串发送,您需要使用 explode.

将其转换为数组
$ids = $request->ids;
$asset_requst = asset_request::whereIn('id', explode(",", $ids))->get();