php - Laravel 雄辩的范围总是返回一个集合
问题描述
我有以下模型:
class EmailAddress extends Model
{
public function scopePrimary($query)
{
return $query->firstWhere('is_primary', true);
}
}
class User extends Model
{
public function emailAddresses()
{
return $this->hasMany(EmailAddress::class);
}
}
echo $user->emailAddresses()->primary()->get();
我希望 Laravel 返回一个模型,因为firstWhere()
基本上LIMIT 1
在查询中确实如此,但我总是得到一个包含一个模型的集合。难道我做错了什么?如何解决?
提前致谢!
解决方案
也许您可以利用hasOne of many 关系:
class User extends Model
{
public function primaryEmailAddress()
{
$this->hasOne(EmailAddresses::class)->ofMany([], function ($query) {
$query->where('is_primary', true);
});
}
}
推荐阅读
- excel - VBA:无缘无故地出现运行时错误“13”
- vue.js - vuejs 编辑数据的条件来自
- python - 将 Kivy 按钮链接到 Builder 上的功能
- python - 在python 3中比较2个不同csv文件的不同行并创建新的csv
- angular - Angular,在导航离开时检测未保存的更改并确认离开或留下
- node.js - 如何从 jwt 策略中获取有效载荷?
- twilio - 如何使用变量作为 Twilio 支付连接器(Stripe)中的费用描述
- javascript - document.activeElement 条件不起作用(id 或 ref 在 div 元素内)
- google-cloud-platform - 如何连接到 mqtt.googleapis.com
- excel - VBA 列表框显示带有货币格式的错误符号