gpt4 book ai didi

Laravel Eloquent select 函数导致空关系

转载 作者:行者123 更新时间:2023-12-01 12:21:43 24 4
gpt4 key购买 nike

以下是我的查询

$user = User::select(['uuid','name','about'])->with(['education','work'])->first();

这将返回关系 education 的空数据和 work ,
但如果我删除 select来自查询的函数我正在获取关系数据,它还返回我不想要的用户表的所有列。

如何解决这个问题

最佳答案

问题是关系 ( with(...) ) 执行附加查询以获取相关结果。假设您有一对多的关系,其中 users有很多works . User::with('work')->find(1)然后将执行这两个查询:
select user where id = 1select works where user_id = 1 .

所以基本上为了能够执行第二个查询(获取关系数据),您需要包含 id (或您引用的任何列)在您的 select 语句中。

使固定:

$user = User::select(['uuid','name','about', 'id'])->with(['education','work'])->first();

同样的原则以不同的形式适用于所有关系。例如在 hasMany 的倒数中这是 belongsTo您需要选择外键(例如 user_id )。

关于Laravel Eloquent select 函数导致空关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43563935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com