Eloquent Relationships - One to Many Relationship - Laravel 9

Tempo lettura: 1 minuti, 29 secondi
Difficoltà: Principiante

Vediamo come è possibile in Laravel creare una relazione One to Many. Supponiamo di avre due modelli Studenti (Students) e Commenti (Comments).

Craiamo tramite il comando php artisan i due modelli e le due migrazioni:

Questo per i due modelli:

php artisan make:model Student

 

php artisan make:model Comment

 

e questo per le migrazioni:

php artisan make:migration create_students_table

 

php artisan make:migration create_comments_table

 

Una volta create le migrazioni andiamo in app/database/migrations e nel metodo up() aggiungiamo i campi:

Questo per Students:

 public function up():void { 
    Schema::create('students', function (Blueprint $table) { 
         $table->id(); 
         $table->string('firstname'); 
         $table->string('lastname'); 
         $table->timestamps(); 
    }); 
 }

Questo per Comment:

 public function up():void { 
     Schema::create('comments', function (Blueprint $table) { 
          $table->id(); 
          $table->string('comment'); 
          $table->foreignId('student_id'); 
          $table->timestamps(); 
     }); 
 }

Una volta salvato lanciamo il comando per le migrazioni 

php artisan migrate

Successivamente in App\Models\Student aggiungiamo il seguente codice:

 public function comment(){ 
     return $this->hasMany(Comment::class); 
  } 

Mentre nel modello App\Models\Comment aggiungiamo il seguente codice:

 protected $fillable = [
   'student_id',
   'comment',
 ];

  public function student()
  {
   return $this->belongsTo('App\Models\Student','student_id','id');
  }

In questo modo abbiamo legato i commenti allo studente. Se andassimo a creare una route e un controller potremmo tramite la relazione comment() avere tutti i commenti per un determinato studente.

Ricevi le ultime novità

Condividi:

Circa l'autore

Giuseppe Alessandro De Blasio

Salve il mio nome come avrete notato e Giueppe Alessandro De Blasio e questo è il mio blog, tutto nasce dalla passione per la tecnologia e per il web in generale, ed oggi lo utilizzo come mezzo di condivisione. Spero che la vostra permanenza sul mio blog vi sia utile e che decidiate di diventare miei affezionati lettori.

Commenti