xon*_*ous 7 pivot laravel eloquent
我正在使用Laravel 4构建一个应用程序,但偶然发现了数据透视表的问题.
我有一个用户模型,一个建立模型和一个studyLevel模型.
暂时找到用户所在的机构,我在我的用户模型中使用以下代码:
public function establishments()
{
return $this->belongsToMany('Establishment')->withPivot('start', 'stop', 'study_level_id')->withTimestamps();
}
Run Code Online (Sandbox Code Playgroud)
establish_user(pivot)表包含以下列:
id | establishment_id | user_id | start | stop | study_level_id
Run Code Online (Sandbox Code Playgroud)
要获取用户的企业列表,我在控制器中使用以下内容:
$establishments = $user_repo->find($user_id)
->with(['establishments', 'establishments.userSubjects' => function ($query) use ($user)
{
$query->where('user_id', $user->id);
}])
->get();
Run Code Online (Sandbox Code Playgroud)
我的问题是响应给了我studylevel的ID,但是我希望得到来自studyLevel模型的信息.是否可以使用withPivot()从studyLevel表中获取信息?
在此先感谢,所有的帮助表示赞赏.
执行此操作的理想方法是专门为您的数据透视表创建一个模型。还有一些替代方案,您可以使用字段pivot_study_level_id在模型中定义关系,但这并不是在所有情况下都有效,而且可能会带来比其价值更多的麻烦。
只需建立一个模型Establishment\User
,然后让它处理关系。
归档时间: |
|
查看次数: |
5094 次 |
最近记录: |