首页 > 解决方案 > 当我运行 php artisan db:seed laravel6 时未定义的常量 'App\Product'

问题描述

我正在使用 laravel6,我想在表 products.bit 中创建 100 个产品,它给了我错误。

嗨,我正在使用 laravel6,我想在表 products.bit 中创建 100 个产品。它给我错误。

产品工厂.php

<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\Product; 
use Faker\Generator as Faker;

$factory->define(Product::class, function (Faker $faker) {
    return [
        'title'=> $faker->sentence(5),
        'description' => paragraph()
    ];
});

数据库种子.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder 
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
        factory(App\Product,100)->create();
    }
}

餐桌用品

 public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title');
            $table->text('description');
            $table->timestamps();
        });
    }

标签: laravel

解决方案


你错了factory(App\Product, 100)->create();把它改成 factory(App\Product::class, 100)->create();

databaseSeed.php 中:

 <?php

 use Illuminate\Database\Seeder;

 class DatabaseSeeder extends Seeder 
{
/**
 * Seed the application's database.
 *
 * @return void
 */
public function run()
 {
    // $this->call(UsersTableSeeder::class);
    factory(App\Product::class, 100)->create();
  }
}

和ProductFactory.php中的其他错误: 更改paragraph()$facker->paragraph()

<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

 use App\Product; 
  use Faker\Generator as Faker;

$factory->define(Product::class, function (Faker $faker) {
return [
    'title'=> $faker->sentence(5),
    'description' => $faker->paragraph()
];
});

推荐阅读