获取具有多个 id 的单个查询中的所有行
get all rows in single query with multiple id
我有一个 asset_request
table 字段 id
和 request_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();
我有一个 asset_request
table 字段 id
和 request_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();