php - Laravel 多对多中间表
问题描述
我试图弄清楚如何在 Laravel 中使用 EloquentORM 解决以下问题。
我有 3 张桌子。
User:
-id
Agreement:
-id
-title
-date_created
Accepted_Agreements:
-user_id
-agreement_id
-date_accepted
那么,我怎样才能获得特定用户的所有协议和 -date_accepted 列?
解决方案
假设您在协议()和用户()函数中定义了多对多关系。
public function agreements() {
return $this->belongsToMany('App\Agreement')->withPivot('date_accepted');
}
然后您可以通过以下方式获得所需的内容:
$agreements = $user->agreements;
foreach($agreements as $agreement) {
$dateAccepted = $agreement->pivot->date_accepted;
}
推荐阅读
- typescript - thunkAPI.getState 方法无法正确推断状态类型
- sql - 根据键列结构向表中添加行
- iphone - navigator.mediaDevices.getUserMedia 在 iphone chrome 中不起作用
- reactjs - Typescript、React、强类型化 useHistory
- python - Python中Yums API中的processTransaction和runTransaction有什么区别?
- javascript - js-xlsx 如何重新排列列?
- html - Table2excel排除内联一个div
- c++ - *同时从向量中插入和删除元素*
- xquery - arg1 不是 xs:anyAtomicType 类型
- jupyter-notebook - 在 PyCharm 中的代码下显示 Jupyter Notebook 输出