laravel logo

Laravel introduce seeder per la creazione di dati di test, utili per verificare il progetto, con un utente amministratore e i dati predefiniti nel database.

Ogni volta che hai un progetto di amministrazione che non ha una pagina di registrazione, allora cosa farai? Voglio dire, devi creare almeno un utente amministratore. Quindi in pratica può accedere e accedere all’intero pannello di amministrazione. Ma non hai la pagina di registrazione sul front-end. hai solo la pagina di accesso. Quindi puoi creare un amministratore direttamente dal database ?, se sì, devi sempre creare un nuovo utente amministratore dal database direttamente quando crei una nuova configurazione del tuo progetto. Ma ti suggerirò di creare un seeder amministratore in modo da poter creare un utente amministratore usando laravel 8 seeder. Basta sparare a comando per eseguire seeder in laravel 8.

Stesse cose, se si dispone della configurazione delle impostazioni predefinite, è possibile creare un seeder delle impostazioni e aggiungere la configurazione predefinita alla tabella del database.

Cos’è Database Seeder in Laravel

Laravel fornisce un metodo semplice per eseguire il seeding dei dati di test in un database utilizzando le classi seeder. È possibile eseguire il seeding del database in Laravel per aggiungere dati falsi nel database a scopo di test.

Esempio di Database Seeder in Laravel

Per prima cosa creiamo un seeder con il comando seguente:

php artisan make:seeder UserSeeder

Dopo aver eseguito il comando, avremo un file UserSeeder.php nella cartella seeds. Le classi seed sono memorizzate nella directory database/seeders.

namespace Database\Seeders;
 
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
 
class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        User::create([
            'name' => 'John Jackson',
            'email' => 'john@jackson.com',
            'mobile' => '123456789',
            'password' => Hash::make('john@123')
        ]);
    }
}

Vediamo ora come possiamo richiamare altri seeder. Il metodo call viene utilizzato per eseguire classi seed aggiuntive all’interno della classe DatabaseSeeder. Ti consente di suddividere il seeding del database in più file in modo che nessuna singola classe seeder diventi troppo grande. Il metodo call accetta un array di classi seeder che devono essere eseguite.

<?php
  
use Illuminate\Database\Seeder;
   
class DatabaseSeeder extends Seeder
{
    public function run()
    {
         $this->call([
         UserSeeder::class,
         PostSeeder::class,
     ]);
    }
}

Comando per eseguire il seeder

php artisan db:seed

Comando per eseguire un seeder singolarmente

php artisan db:seed –class=UserSeeder

Puoi anche eseguire il seeding del database utilizzando il comando migrate:fresh in combinazione con l’opzione –seed. Questo comando elimina tutte le tabelle, esegue nuovamente tutte le migrazioni e ricostruisce il database.

php artisan migrate:fresh --seed

Ercole Palmeri

Newsletter sull’Innovazione

Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
Loading

Puoi cancellarti in ogni momento. Leggi la nostra Privacy Policy.