Laravel查询构建器whereIn不起作用

时间:2018-06-15 15:04:13

标签: laravel laravel-5 laravel-5.6 laravel-query-builder laravel-collection

我有以下模型,我需要获得一个没有字段名称的district_id数组。 (比如,[1, 2, 3, 4]

Province [id, description]

District [id, description, province_id]

$province_arr = DB::table('provinces')->pluck('id')->toArray();

$district_arr = DB::table('districts')->pluck('id')
     ->whereIn('province_id', $province_arr)->toArray();

$district_arr总是空的。 (即dd($district_arr)总是给[]

数据库包含与查询匹配的数据。有人可以帮我弄清楚为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

您应pluck whereIn之后使用$district_arr = DB::table('districts')->whereIn('province_id', $province_arr) ->pluck('id')->toArray();

pluck

因为whereIn在这里是从数据库获取数据的方法。如果从数据库获取后添加条件,则无法获得预期的结果。

否则,您从数据库获取数据,然后在Support Collection上运行province_id并且没有id的记录,因为所有记录都只有pluck,如您在<html> <head><title>lol1</title></head> <body> <form action="lol2.html"> <input type="text" name ="firstname" placeholder="First Name"> <input type="text" name="lastname" placeholder="Last Name"> <input type="Submit" value="Submit" > </form> </body> </html>