我有上面提到的错误,这里是复制日志
php artisan db:seed
BadMethodCallException
Call to undefined method App\Models\Category::factory()
at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:50
46▕ * @throws \BadMethodCallException
47▕ */
48▕ protected static function throwBadMethodCallException($method)
49▕ {
➜ 50▕ throw new BadMethodCallException(sprintf(
51▕ 'Call to undefined method %s::%s()',static::class,$method
52▕ ));
53▕ }
54▕ }
• Bad Method Call: Did you mean App\Models\Category::toArray() ?
+3 vendor frames
4 database/seeders/DatabaseSeeder.php:38
Illuminate\Database\Eloquent\Model::__callStatic()
+22 vendor frames
27 artisan:37
Illuminate\Foundation\Console\Kernel::handle()
这是databaseseeder.php 类,因为错误在那里:
<?php
namespace Database\Seeders;
use App\Models\Category;
use App\Models\Product;
use App\Models\Transaction;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// \App\Models\User::factory(10)->create();
DB::statement('SET FOREIGN_KEY_CHECKS=0');
User::truncate();
Category::truncate();
Product::truncate();
Transaction::truncate();
DB::table('category_product')->truncate();
$cantidadUsuarios = 200;
$cantidadCategories = 30;
$cantidadProductos = 1000;
$cantidadTransacciones = 1000;
\App\Models\User::factory()->count($cantidadUsuarios)->create();
\App\Models\Category::factory()->count($cantidadUsuarios)->create();
\App\Models\Product::factory()->count($cantidadTransacciones)->create()->each (
function ($producto) {
$categorias = Category::all()->random(mt_rand(1,5))->pluck('id');
$producto->categories()->attach($categorias);
}
);
\App\Models\Transaction::factory()->count($cantidadTransacciones)->create();
}
}
有错误行:
\App\Models\Category::factory()->count($cantidadUsuarios)->create();
这里我们得到了类别类:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
public $table = "categories";
protected $fillable = [
'name','description',];
}
这里我们得到了类别工厂:
<?php
namespace Database\Factories;
use App\Models\Category;
use Illuminate\Database\Eloquent\Factories\Factory;
class CategoryFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Category::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
'name' => $this->faker->word,'description' => $this->faker->paragraph(1),];
}
}
这里是类别迁移:
<?php
use App\Models\Product;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCategoriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('categories',function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('description',1000);
$table->integer('quantity')->unsigned();
$table->string('status')->default(Product::PRODUCTO_NO_DISPONIBLE);
$table->string('image');
$table->integer('seller_id')->unsigned();
$table->timestamps();
$table->foreign('seller_id')->references('id')->on('users');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('categories');
}
}
我发布了您需要的所有内容,因为我是新手,我找不到问题。