0

我已经定义了我的 Slot 模型来从 User 模型中加载关系,如下所示:

public function userAssignedFull(): HasOne {
    return $this->hasOne(User::class,'id','user_assigned');
}

(“插槽”表包含“user_assigned”字段,我通过该字段连接到“id”上的用户记录)

以下代码找到 Slot 模型但没有“userAssignedFull”。我只得到“user_assigned”中的用户 ID。

  $slot = Slot::with('userAssignedFull')->find($slot_id);

但是之后调用它会返回我想要的关系:

$fullUserModel = $slot->userAssignedFull;

谁能告诉我我做错了什么?

4

2 回答 2

1

Builder::with()返回Builder实例。

所以你必须打电话$slot->userAssignedFull;来获取数据的集合。

文档

当访问 Eloquent 关系作为属性时,关系数据是“延迟加载”的。这意味着在您第一次访问该属性之前不会实际加载关系数据

$slot->userAssignedFull;是您的“第一次访问该物业”

于 2019-04-22T14:17:19.767 回答
0

试试这个

$slot = Slot::where('id', $slot_id)->with('userAssignedFull')->first();
$slot->userAssignedFull;
于 2019-04-22T14:26:56.347 回答