informatica:programacion:php:frameworks:laravel:bases_de_datos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:php:frameworks:laravel:bases_de_datos [2025/03/06 11:08] – [Factories] tempwin | informatica:programacion:php:frameworks:laravel:bases_de_datos [2025/03/09 15:10] (actual) – [Seeders] tempwin | ||
|---|---|---|---|
| Línea 440: | Línea 440: | ||
| Esto poblará las tablas de las bases de datos con lo que hemos programado. | Esto poblará las tablas de las bases de datos con lo que hemos programado. | ||
| + | |||
| + | <WRAP center round info 80%> | ||
| + | Si queremos ejecutar solo un determinado //seeder//: | ||
| + | |||
| + | <code bash> | ||
| + | php artisan db:seed --class=NombreSeeder | ||
| + | </ | ||
| + | </ | ||
| Podemos combinar los dos comandos anteriores de la siguiente manera: | Podemos combinar los dos comandos anteriores de la siguiente manera: | ||
| Línea 541: | Línea 549: | ||
| } | } | ||
| </ | </ | ||
| - | |||
| - | Para crear un // | ||
| - | |||
| - | |||
| - | |||
| - | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| - | |||
| - | |||
| - | |||
| - | <WRAP center round info 60%> | ||
| - | En Laravel 8 hubo un cambio en la estructura y funcionamiento de los Factories | ||
| - | </ | ||
| - | |||
| Para crear nuestro propio // | Para crear nuestro propio // | ||
| <code php> | <code php> | ||
| - | php artisan make: | + | php artisan make: |
| </ | </ | ||
| - | Hemos indicado que el factory que queremos crear es para el modelo **Product**. Tendremos que rellenar la definición de la factory recién creada: | + | Hemos indicado que el factory que queremos crear es para el modelo **Post** siguiendo la convención del nombre. Tendremos que rellenar la definición de la //factory// recién creada: |
| <code php> | <code php> | ||
| Línea 567: | Línea 562: | ||
| { | { | ||
| return [ | return [ | ||
| - | ' | + | ' |
| - | 'description' => $this-> | + | 'content' => $this-> |
| - | 'price' => $this-> | + | 'category' => $this-> |
| - | 'stock' => $this-> | + | 'published_at' => $this-> |
| - | ' | + | |
| ]; | ]; | ||
| } | } | ||
| </ | </ | ||
| - | Para que un modelo | + | Es importante indicar en nuestro |
| <code php> | <code php> | ||
| - | namespace App\Models; | ||
| - | |||
| use Illuminate\Database\Eloquent\Factories\HasFactory; | use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
| - | use Illuminate\Database\Eloquent\Mdeol; | ||
| - | class Cart extends Model | + | class Post extends Model |
| { | { | ||
| - | + | use HasFactory; | |
| - | use HasFactory; | + | |
| - | + | ||
| - | // code | + | |
| } | } | ||
| </ | </ | ||
| - | + | Ahora vamos a '' | |
| - | Ahora usaremos este factory para crear de forma aleatoria instancias de nuestro producto. Usamos Artisan: | + | |
| <code php> | <code php> | ||
| - | php artisan tinker | + | // ... |
| + | public function run(): void | ||
| + | { | ||
| + | Post:: | ||
| + | } | ||
| </ | </ | ||
| - | Y dentro de tinker: | + | Ya podremos usarlo y se generarán 100 registros en la tabla '' |
| - | < | + | < |
| - | App\Models\Product::factory()-> | + | php artisan migrate:fresh --seed |
| </ | </ | ||
| - | Veremos las 5 instancias que se habrán creado. Como hemos usado '' | + | De todos modos, si nuestro |
| - | < | + | < |
| - | App\Models\Product:: | + | // ... |
| + | public function run(): void | ||
| + | { | ||
| + | Post::factory(100)->create(); | ||
| + | |||
| + | $this->call([ | ||
| + | UserSeeder:: | ||
| + | ]); | ||
| + | } | ||
| </ | </ | ||
| - | |||
| ==== Database seeder ==== | ==== Database seeder ==== | ||
informatica/programacion/php/frameworks/laravel/bases_de_datos.1741255732.txt.gz · Última modificación: por tempwin
