如何在Laravel SQL查询的where子句中使用对象

时间:2018-07-07 06:43:01

标签: php mysql sql laravel laravel-5.5

假设我有一些doctor_id的对象数据

{doctor_id: 1} 
{doctor_id: 2}

现在,我想从doctor_id表中找到选定的doctors的名称。

doctors表字段是idnameaddress ....

我的查询是

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

但是我从log文件中得到了错误

  

local.ERROR:SQLSTATE [HY000]:一般错误:2031(SQL:从doctors中选择*,其中(?)中的id

对此的查询是什么。请帮助

2 个答案:

答案 0 :(得分:1)

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

即就您而言,wherein应该是这样的。

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

不确定$docter_id中包含哪种对象,但是解决问题的方法是,在将对象馈送到whereIn之前,需要将其转换为id数组。

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

答案 1 :(得分:0)

您可以使用pluck方法获得给定键的值数组,您可以将其作为第二个参数传递给whereIn方法

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