gpt4 book ai didi

Laravel 枢轴 : Get model from withPivot()

转载 作者:行者123 更新时间:2023-12-04 04:38:24 29 4
gpt4 key购买 nike

我正在使用 Laravel 4 构建应用程序,但偶然发现了数据透视表的问题。

我有一个用户模型、一个建立模型和一个 StudyLevel 模型。

目前,为了找到用户所在的位置,我在用户模型中使用了以下代码:

public function establishments()
{
return $this->belongsToMany('Establishment')->withPivot('start', 'stop', 'study_level_id')->withTimestamps();
}

建立用户(枢轴)表具有以下列:
id | establishment_id | user_id | start | stop | study_level_id

要获取用户的场所列表,我在 Controller 中使用以下内容:
$establishments = $user_repo->find($user_id)
->with(['establishments', 'establishments.userSubjects' => function ($query) use ($user)
{
$query->where('user_id', $user->id);
}])
->get();

我的问题是响应为我提供了 studyLevel 的 ID,但我想要来自 studyLevel 模型的信息。是否可以使用 withPivot() 从 studyLevel 表中获取信息?

提前致谢,感谢所有帮助。

最佳答案

实现此目的的理想方法是为您的数据透视表专门创建一个模型。有一些替代方案,您可以使用字段 pivot_study_level_id 在模型中定义关系,但这不会在所有情况下都有效,而且可能会比它的值(value)更麻烦。

只需设置一个模型,如 Establishment\User并让它处理关系。

关于Laravel 枢轴 : Get model from withPivot(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25362859/

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