从 Eloquent where 子句中获取属性

Get Attribute from Elequent where clause

所以我有以下 where 子句,我在我的层 table 内搜索名称 "Gold"。

$tier = Tier::where(['name' => 'Gold'])->get(['id']);
dd($tier);

当我执行上述操作时,"id" 列在属性中,但当我执行以下操作时,它会给我

Undefined property: Illuminate\Database\Eloquent\Collection::$id

dd($tier->id);

我只想获取名称为 "Gold" 的记录的 ID。

要获得实际模型,您应该使用 first() 而不是 get()。因为可能有多个行匹配 get() 将 return 一个集合。

$tier = Tier::where(['name' => 'Gold'])->first(['id']);
dd($tier->id);

如果您真的只需要 id,还有一个更简单的函数,pluck()

它将从第一个结果中获取一个属性:

$id = Tier::where(['name' => 'Gold'])->pluck('id');