为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 多对多返回空集合

Laravel 多对多返回空集合

PHP
阿晨1998 2021-10-15 17:50:30
我想在 Laravel 中有两个模型相互关联。一次旅行可以有多个用户,一个用户可以进行多次旅行。模型是这样设置的。class Trip extends Model {    public function users() {        return $this->belongsToMany('App\User', 'trip_user', 'user_id', 'trip_id');    }}class User extends Model {    public function trips() {        return $this->belongsToMany('App\Trip', 'trip_user', 'trip_id', 'user_id');    }}数据透视表称为“trip_user”,具有用户和行程的 ID。当我尝试通过以下方式获得旅行用户时$oTrip->users()我得到属于许多关系BelongsToMany {#267 ▼#table: "trip_user"#foreignPivotKey: "user_id"#relatedPivotKey: "trip_id"#parentKey: "id"#relatedKey: "id"#relationName: "users"#pivotColumns: []#pivotWheres: []#pivotWhereIns: []#pivotValues: []+withTimestamps: false#pivotCreatedAt: null#pivotUpdatedAt: null#using: null#accessor: "pivot"#query: Builder {#266 ▶}#parent: Trip {#259 ▶}#related: User {#264 ▶}-currentlyAttached: null}当我做$oTrip->users我得到一个空的集合。我可以确认表中确实有一个具有正确行程 ID 和一些用户 ID 的条目。可能有什么问题?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

来自 Laravel 文档:

第三个参数是您在其上定义关系的模型的外键名称,而第四个参数是您要加入的模型的外键名称

我相信你已经把它们换了。尝试在多对多关系中将 trip_id 与 user_id 交换


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信