Skip to content
Ultima Laravel
  • Pages
    • Introducción
      • Ventajas de utilizar Laravel
      • Entorno de desarrollo
    • Instalación Laravel
      • Composer
      • * Kits de inicio
      • Crear Virtual Host
      • Las mejores extensiones de VS Code para Laravel
      • Cómo instalar proyectos existentes de Laravel
    • Crear una aplicación Laravel
      • Organización Laravel
    • Ejemplo tabla alumnos
      • Resumen ejemplo
      • BD y autenticacion
      • Ejemplo aula_online
      • Ejercicio
      • Entorno y mensajes de error
      • Authentication
    • Base de datos
      • Modelos
        • Polimorfismo
      • Eloquent ORM
      • Migraciones (Estructura de las tablas )
      • Factories
      • icon picker
        Seeders
      • Query Builder. Paginación
      • Ejemplo
    • Enrutamiento
      • Routes
      • Routes y Controller
      • Las respuestas
    • Vistas
      • Vistas en Laravel: blade
        • Vistas
        • Vistas y Rutas en Laravel
      • Plantillas mediante Blade
    • Controladores, middleware y formularios
      • Controladores
      • Middleware o filtros
      • Formularios
    • Validación
    • Sesiones
    • Resumen comandos
      • Artisan
    • Diferencias y Helpers
    • Enlaces interesante
Share
Explore

Seeders

Seeders (o sembradores)

Los seeders son clases usadas para:
Rellenar las tablas con datos de prueba
Cargar las tablas con datos iniciales.
Creación con artisan:
php artisan make:seeder StudySeeder
Los seeders tienen un método run() donde se registra el contenido de los registros a insertar. Puede usarse sintaxis de Query Builder o de Eloquent

Ejemplo:
use Illuminate\Database\Seeder;
use App\Review;
class StudiesSeeder extends Seeder
{
public function run()
{
//con eloquent
Study::create([
'code' => 'IFC303',
'name' => 'Desarrollo de Aplicaciones Web',
'abreviation' => 'DAW'
]);

//lo mismo con query builder
DB::table('studies')->insert([
'code' => 'IFC303',
'name' => 'Desarrollo de Aplicaciones Web',
'abreviation' => 'DAW
]);
}
}
El orden en que se ejecutan los seeders se establece manualmente. Debe rellenarse el método run() de la clase DatabaseSeeder ubicada en database/seeds
public function run()
{
$this->call(StudySeeder::class);
$this->call(ModuleSeeder::class);
}
Su ejecución es desde artisan:
Modo general
php artisan db:seed
Junto a las migraciones:
php artisan migrate:refresh --seed
De forma individual
php artisan db:seed --class=ModuleSeeder
Ejemplo
Poblando una base de datos desde migration
Primero vamos a la carpeta app/database/seedsy creamos un fichero PoblarUsuariosSeeder.php
php artisan make:seeder PoblarUsuarios
Esta clase debe de extender de Seeder
class PoblarUsuariosSeeders extends Seeder {
//put your code here
public function run()
{ //Usando el modelo creamos un nuevo registro. Tambien se puede hacer con el método save
Usuario::create(array(
'usuario' => 'manolo',
'email' => 'admin@admin.com',
'password' => Hash::make('manolo') // Hash::make() nos va generar una cadena con nuestra contraseña encriptada
}
}
Ahora nos queda ejecutarla; Para ello vamos a modificar la clase DataBaseSeeders.php que tenemos en /app/database/seeds. Esta clase se va a encargar de invocar al resto de clases creadas para poblar tablas
Para ello añadimos una línea para que se llame a la clase que previamente hemos creado.
$this->call('PoblarUsuariosSeeders');
Si tuviéramos varias clases, le pasaríamos al método call un array en lugar de una clase
$this->call(['PoblarUsuariosSeeders', 'Clase2Seeder,...,'ClaseNSeeder']);
Quedándonos el código de la clase
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Eloquent::unguard();
$this->call('PoblarUsuariosSeeders');
}
}
 
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.