sql >> Databasteknik >  >> NoSQL >> MongoDB

Varför laravel returnerar en tom array för en har många relationer?

Ditt förhållningssätt till den främmande nyckeln är fel, när det är i sammanhanget hasMany. Istället ska en kolumn som heter team_id finnas på biljetten och då kan du göra följande.

public function teams()
{
     return $this->HasMany('App\Team', 'team_id');
}

Vilket skulle fungera om din biljett ser ut så.

{
      "_id": ObjectId("5f32d9bb486e94459b6531c3"),
      "subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
      "content": "abc",
      "user_team": "5f044199e40dfe4847056785",
      "team_id":"5f3012bbb7c2bc422e4da5a2"
      "organization_id": "5f74359c7dcc8f6fbb2b47e2"
}

Istället ser det ut som att du faktiskt gör många till många, eftersom ett lag kan ha många biljetter och reversera. Detta kan definieras så, detta kommer förmodligen att lägga till data till båda modellerna, men jag är ingen expert på Mongodb i Laravel .

public function teams()
{
    return $this->belongsToMany(
        Team::class, null, 'ticket_ids', 'team_ids'
    );
}

Du kan hitta allt detta i dokumentationen .



  1. MongoMapper nära med maxDistance - Mongo::OperationFailure:geovärden måste vara siffror:

  2. Redis Store (eller någon databas?) Låsmekanism (NodeJS)

  3. Villkorlig projektion i mongodb med c#-drivrutin

  4. Hur utför man sådana filterfrågor i mongoengine på kapslade dicts eller arrayer som finns i dict med python?