scritto tempo fa
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à
Circa l'autore
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.