Visualizzazione dei risultati da 1 a 2 su 2

Visualizzazione discussione

  1. #1

    [Laravel] JSON con relazioni

    ciao!


    ho questo model:
    codice:
    class Persona extends Model {
      protected $table = "persone";
      protected $primaryKey = "id";
      public $timestamps = false;
    
    
      protected $fillable = [
          "id",
          "nome",
          "email",
      ];
    
    
      public function attivita(): HasMany {
        return $this->hasMany('App\Models\Attivita', 'fk_persona', 'id');
      }
    }

    una persona può avere N attivita.
    una attività può appartenere ad una persona.
    questo il model attivita:
    codice:
    class Attivita extends Model {
      protected $table = "attivita";
      protected $primaryKey = "id_attivita";
      public $timestamps = false;
    
    
      protected $fillable = [
          "id_attivita",
          "fk_persona",
          "nome_attivita",
      ];
    
    
      public function persona(): BelongsTo {
        return $this->belongsTo('App\Models\Persona', 'id', 'fk_persona');
      }
    }

    se io nel controller faccio questo:
    codice:
    class TestController extends Controller {
    
    
      public function index(): JsonResponse {
        $query = Persona::all();
        return response()->json($query, 200);
      }
    
    
    }

    ottengo questo json:
    codice:
    [
      {
        "id": 1,
        "nome": "matteo",
        "email": "ciao@ciao.com"
      },
      {
        "id": 2,
        "nome": "marco",
        "email": ""
      }
    ]

    ma non sarebbe possibile ottenere direttamente un json con tutte le attività come array?
    una cosa del genere per capirci:
    codice:
    [
      {
        "id": 1,
        "nome": "matteo",
        "email": "ciao@ciao.com",
    	"attivita": [
    	]
      },
      {
        "id": 2,
        "nome": "marco",
        "email": "",
    	"attivita": [
    	]
      }
    ]
    Ultima modifica di fermat; 14-02-2025 a 09:40

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.