比较 laravel 中的列

Comparing columns in laravel

对于不合适的地方提前表示歉意 question.I 我是 php 和 laravel 的初学者。想知道我在以下代码片段中哪里做错了。

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

我在数据库中有两个 table。"Customer" table 有一列 'vlan_id'。在第一个查询中,我试图获取使用过的 vlan_id.

对于第二个 table "Vlans",column'id' 包含所有可能的 vlan。所以我想找出哪个 vlan 没有被使用。

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

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

我认为最好的方法是遍历 $customer_vlan 集合并将 $customer_vlan[$i]->id 推送到数组。然后你可以使用这个:

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