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

时间:2018-04-10 07:38:18

标签: laravel laravel-5 laravel-5.3

我有asset_request表格,其中包含字段idrequest_id 我想选择具有特定ID的多行。

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

我想在请求表

中仅选择ID为5和6的行
$ids = $request->ids;
$asset_request = asset_request::whereIn('id',array($ids))->first(); //gets only 6th row.

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

3 个答案:

答案 0 :(得分:1)

在与Op:

聊聊之后澄清一下

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

$id = $request->id;

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

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

答案 1 :(得分:0)

首先,您调用first方法,该方法仅返回匹配的第一行 您需要调用get方法来获取所有匹配的行。

其次,如果您要将ids作为逗号分隔字符串发送,则需要使用explode将其转换为数组。

$ids = $request->ids;
$asset_requst = asset_request::whereIn('id', explode(",", $ids))->get();

答案 2 :(得分:-1)

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

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