提前抱歉不合适的问题。我是php和laravel的初学者。想知道我在以下代码片段中的错误。
$customer_vlan = Customer::select('vlan_id')->get();
$vlans = Vlans::where(function($query) use ($customer_vlan){
$query->where('id','!=',$customer_vlan);
})->get();
我在数据库中有两个表。“Customer”表有一个列'vlan_id'。在第一个查询中,我试图获取使用过的vlan_id。
对于第二个表“Vlans”,列'id'包含所有可能的vlan。所以我想找到哪些vlan没用过。
答案 0 :(得分:2)
您正在尝试将ID与集合进行比较。然后结果是所有Vlans
。
$query->where('id','!=',$customer_vlan);
我认为最好的方法是循环$customer_vlan
集合并将$customer_vlan[$i]->id
推送到数组。然后你可以使用它:
$query->whereNotIn('id', $arrayOfId);