如何解决一个查询中的 Eloquent 模型关系
我正在尝试在一个 SQL 查询中加载一个具有关系的模型。可能吗?
例如,如果我编写经典的 eloquent 查询:
$user = User::find(1);
$user->hobby;
它将运行 2 个 SQL 查询:一个针对用户,另一个针对爱好。 而 User 模型实例将在 relations 属性中包含爱好数据。 (同样会通过 ->with() 方法发生)
我用一个 SQL 查询最接近的是:
$user = User::select(['users.*','hobbies.*'])
->join('hobbies','hobbies.id','users.hobbie_id')
->find(1);
但问题是爱好的列将在原始属性中,并与用户属性混合而不是关系 属性作为第一个示例。
是否可以做这样的事情,但关系数据将在 relations 属性下?
解决方法
您可以在选择中更改爱好的属性名称
$user = User::select(['users.*','hobbies.name as hobby_name'])
->join('hobbies','hobbies.id','users.hobbie_id')
->find(1);
在这里您可以更改关系属性名称
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。