我将使用 来计算雄辩查询的总记录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()只有一条记录符合条件。
我哪里做错了?
谢谢
first()您使用返回 MODEL 的方法时犯了一个错误。您必须使用get()方法返回集合,以便可以count()对检索到的集合执行操作。当您对模型使用计数时,它将返回数据库中模型的数量。
所以你想使用
$eligable = App\Models\Coupon::where('code', 'StarterResellerFree30Days')->get();
Run Code Online (Sandbox Code Playgroud)
按照下面的例子:
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |