Laravel first()->count() 返回多个

Dar*_*ber 1 laravel eloquent

我将使用 来计算雄辩查询的总记录count()

我的桌子看起来像这样

ID 代码 折扣
1 初学者经销商免费30天 100
2 初学者经销商免费33天 100
3 初学者经销商免费32天 100
4 初学者经销商免费31天 100
5 初学者经销商免费 60 天 10

这是我的代码

 $eligible = Coupon::where('code', 'StarterResellerFree30Days')->first();
 echo $eligible->discount;
 echo "<br><br>";
 echo $eligible->count();
Run Code Online (Sandbox Code Playgroud)

这是结果

100

5
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,$eligible->discount返回预期值,这意味着$eligible仅包含 1 条记录。

但是,当我使用 时$eligible->count(),它返回的5是总记录数。

$eligible->count()应该返回,1因为first()只有一条记录符合条件。

我哪里做错了?

谢谢

Ale*_*kić 5

first()您使用返回 MODEL 的方法时犯了一个错误。您必须使用get()方法返回集合,以便可以count()对检索到的集合执行操作。当您对模型使用计数时,它将返回数据库中模型的数量。

所以你想使用

$eligable = App\Models\Coupon::where('code', 'StarterResellerFree30Days')->get();
Run Code Online (Sandbox Code Playgroud)

按照下面的例子:

在此输入图像描述