Laravel selectRaw 计数不起作用

Laravel selectRaw count where not working

我想获得 used_items < limit 的项目,但我也得到 used_items >= limit。 我厌倦了尝试使用 having 但也没有用。

public function getAllowedItems()
{
    $items = Item::leftJoin('runners_items', 'runners_items.item_id', 'items.id')
        ->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
        ->where('subrace_items.sub_race_id', $this->id)
        ->select('items.*', DB::raw('count(items.id)-1 as used_items'))
        ->where('items.limit', '>', 'used_items')
        ->orWhere('items.limit', 0)
        ->groupBy('items.id')->get();
    dd($items);
}

此 select 查询无法正常工作

->select('items.*', DB::raw('count(items.id)-1 as used_items'))

尝试 this.it 会成功

  public function getAllowedItems()
    {
         $user_items =Item::leftJoin('runners_items','runners_items.item_id','items.id')
        ->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
        ->where('subrace_items.sub_race_id', $this->id)
        ->select('items.*', DB::raw('count(items.id)-1 as used_items'))
        ->groupBy('items.id')->get();

   $user_item=$user_items[0]->user_items;

  $items = Item::leftJoin('runners_items','runners_items.item_id','items.id')
        ->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
        ->where('subrace_items.sub_race_id', $this->id)
        ->select('items.*'))->where('items.limit', '>', $user_items)
        ->orWhere('items.limit', 0)
        ->groupBy('items.id')->get();
    dd($items);
        
    }