sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Por qué laravel devuelve una matriz vacía para una relación que tiene muchas?

Su enfoque de la clave externa es incorrecto, cuando está en el contexto de hasMany. En su lugar, una sola columna llamada team_id debería estar en el ticket y luego puede hacer lo siguiente.

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

Lo cual funcionaría si su boleto se ve así.

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

En cambio, parece que en realidad estás haciendo muchos a muchos, porque un equipo puede tener muchos boletos y revertirse. Esto se puede definir así, esto probablemente agregará los datos a ambos modelos, pero no soy un experto en Mongodb en Laravel .

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

Puede encontrar todo esto en la documentación .