Jednoduchý e-shop Laravel 5.3 část 2 – databáze seeder a homepage
Dazabázi máme vytvořenou. Abychom mohli vyvíjet aplikaci naplním si produkty daty. K tomu využiji další pěknou feature, kterou Laravel má a to database seeder. Takže si v database/seeds upravíme DatabaseSeeder.php a to takto
1 2 3 4 |
public function run() { $this->call(ProductsTableSeeder::class); } |
Dále si ve stejném adresáři vytvoříme ProductsTableSeeder.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; use App\Product; class ProductsTableSeeder extends Seeder { public function run() { DB::table('products')->delete(); Product::create(array( 'name'=>'Náhrdelník swarowski', 'description'=>'Nový luxusní náhrdelník swarovski', 'slug'=>'nahrdelnik-swarowski', 'price'=>'1001.40', )); Product::create(array( 'name'=>'Prstýnek chirurgická ocel', 'description'=>'Potěší každou slečnu nebo paní.', 'slug'=>'prstynek-chirurgicka-ocel', 'price'=>'100.50', )); Product::create(array( 'name'=>'Náramek pro meditaci', 'description'=>'Meditační náramek přímo z Indie', 'slug'=>'meditacni-naramek', 'price'=>'250', )); } } |
a nyní bychom už mohli pustit seeder
1 |
php artisan db:seed |
Ovšem ten nám skončí chybou ClassProductcTableSeeder does not exists. Ovšem my ale víme, že existuje. Problém je pouze v autoloadu takže provedeme
1 |
composer dump-autoload |
A zkusíme seeder znovu spustit. Ops opět…