比较laravel中的列

whlutmcx  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(385)

对不起,事先为不恰当的问题。我是一个初学者在php和拉威尔。想知道我在下面的代码片段中犯了什么错误。

$customer_vlan = Customer::select('vlan_id')->get();
$vlans = Vlans::where(function($query) use ($customer_vlan){
$query->where('id','!=',$customer_vlan);
})->get();

我在数据库中有两个表。“customer”表有一列“vlan\u id”。在第一个查询中,我试图获取使用过的vlan\u id。
对于第二个表“vlan”,列“id”包含所有可能的vlan。所以我想找出哪个vlan没有被使用。

7kqas0il

7kqas0il1#

您正在尝试将id与集合进行比较。那么结果就是 Vlans .

$query->where('id','!=',$customer_vlan);

我认为最好的办法是循环 $customer_vlan 收集和推送 $customer_vlan[$i]->id 到一个数组。然后你可以用这个:

$query->whereNotIn('id', $arrayOfId);

相关问题