php - 如何在使用 eloquent 时排除某些列 拉拉维尔
问题描述
我有一个小组表。我的主桌。所以我有 group_hotels 表,这个表是一个数据透视表。(id,group_id,hotel_id)
现在在我的刀片组编辑页面中,我想在添加数据透视表之前列出如下代码:我的组模型:
public function hotels(){
return $this ->belongsToMany('App\Models\Hotel','group_hotels');
}
我的控制器:
$group = Group::find($id);
$hotels=Hotel::all();
我的刀片酒店 select2 字段:
@foreach($hotels as $hotel)
<option value="{{$hotel->id}}">{{$hotel->name}}</option>
@foreach ($group->hotels as $item)
<option value="{{$item->id}}">{{$item->name}}</option>
@endforeach
@endforeach
输出如下: http: //prntscr.com/10v13ed
现在我想做的是,在我的 group_hotels 数据透视表中,如果酒店 id 存在于 group_hotels 中,除了数据透视表中的 id 什么都没有出现在酒店表中。
简而言之:如果 group_hotels 表中的 hotel_id 部分出现在我的酒店表中,我不想在酒店变量中调用它。
解决方案
您可以选择的一种方法是在查询级别排除您不希望出现在列表中的酒店:
Hotel::whereNotKey($group->hotels->modelKeys())->get();
推荐阅读
- php - Xero API:通过第一次“登录并选择组织”弹出
- python - 如何更改 sympy 绘图线型?
- flutter - flutter pub 对于特定的包已经过时了?
- directory - Linux下的数据丢失
- amazon-web-services - 只让另一个微服务可以访问一个微服务
- css - Autoprefixer 在 gatsby 项目中做的很少
- javascript - 页面加载后如何使用javascript修改html
- angular - 当我在 FormBuilder 中设置字段时,为什么要在 DOM 中使用 `required`?
- java - 当我们声明一个向量时
> r,我们可以通过 r[0].insert(10) 轻松地将元素插入到集合中。同样,它是如何在java中完成的? - c++ - 如何逃脱 switch 和 while(1) 循环?