簡體   English   中英

Laravel多對多返回空集合

[英]Laravel Many to Many returns empty collection

我想在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的條目。

有什么事嗎

從Laravel文檔中:

第三個參數是您要在其上定義關系的模型的外鍵名稱,而第四個參數是您要加入的模型的外鍵名稱。

我相信您已將其切換。 嘗試在多對多關系中將trip_id與user_id交換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM