首页 > 解决方案 > 如何在 Laravel SQL 查询的 where 子句中使用对象

问题描述

假设我有一些对象数据doctor_id

{doctor_id: 1} 
{doctor_id: 2}

现在我想找到doctor_iddoctors表中选择的名称。

doctors表字段是id, name, address....

我的查询是

$doctors_data = Doctor::whereIn('id', $doctor_id)->get();

但我从log文件中得到错误

local.ERROR: SQLSTATE[HY000]: 一般错误: 2031 (SQL: select * from doctorswhere idin (?))

什么是查询。请帮忙

标签: phpmysqlsqllaravellaravel-5.5

解决方案


whereIn要求第二个参数是一个数组。

即在你的情况下,wherein应该是这样的。

$doctorsData = Doctor::whereIn('id', [1,2])->get();

不知道你有什么样的对象$docter_id,但你的问题的解决方案是,你需要将你的对象转换为一个 id 数组,然后再将它输入whereIn.

希望你明白这个概念。如果仍然无法解决问题,您可以将您的doctor_id对象分享给我们,以便我们帮助将其转换为数组。


推荐阅读