Por si alguno llega a tener problemas al ejecutar este comando: php artisan db:seed Para Laravel 8
php artisan db:seed
ParseError
syntax error, unexpected '}'
at C:\laragon\www\comercio\database\seeders\DatabaseSeeder.php:17 13▕ */ 14▕ public function run() 15▕ { 16▕ Product::factory()->count(5)->create() ➜ 17▕ } 18▕ } 19▕
1 C:\laragon\www\comercio\vendor\composer\ClassLoader.php:322 Composer\Autoload\includeFile("C:\laragon\www\comercio\vendor\composer/../../database/seeders/DatabaseSeeder.php")
2 [internal]:0 Composer\Autoload\ClassLoader::loadClass("Database\Seeders\DatabaseSeeder")
//////////////////////////
Pueden probar modificando lo siguiente:
Del archivo "ProductFactory.php" debe contener algo así:
<?php
namespace Database\Factories;
use App\Models\Product; use Illuminate\Database\Eloquent\Factories\Factory;
class ProductFactory extends Factory { /** * The name of the factory's corresponding model. * * var string */ protected $model = Product::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->sentence(),
'price' => 200,
'description' => $this->faker->paragraph(),
'thumbnail' => "https://picsum.photos/550/600"
];
}
}
Y el archivo DatabaseSeeder.php algo así:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder; use App\Models\Product;
class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { Product::factory(5)->create(); } }
Y lo más importante es modificar este archivo: "Product.php" Que es básicamente agregarle use HasFactory;
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model;
class Product extends Model { use HasFactory; protected $fillable = ['name','price','description','thumbnail']; }
Espero les sirva de algo,
Saludos