这是我的疑问:
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn (name = "user_id")
private User user;
我需要$items = UserItems::with('item')
->where('user_id','=',$this->id)
->where('quantity','>',0)
->where('items.type','=',"shirt")
->get();
为type
的所有项目。
查询返回:
shirt
由于某些原因,Column not found: 1054 Unknown column 'items.type' in 'where clause'
在此查询中未被识别为表格,我无法使用`在其中的位置。
然后我如何获取项目类型为items
的所有用户项目?
答案 0 :(得分:1)
尝试:
$items = UserItems::with(['item' => function($query){
return $query->where("type", "shirt")
})
->where('user_id','=',$this->id)
->where('quantity','>',0)
->get();
答案 1 :(得分:1)
您实际上需要使用whereHas
来处理此问题......
$items = UserItems::with('item')
->whereHas('item', function($q) {
$q->where('type', 'shirt');
})
->where('user_id','=',$this->id)
->where('quantity','>',0)
->get();