我遇到了上述错误,这是复制日志
\nphp artisan db:seed\n\n BadMethodCallException\n\n Call to undefined method App\\Models\\Category::factory()\n\n at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:50\n 46\xe2\x96\x95 * @throws \\BadMethodCallException\n 47\xe2\x96\x95 */\n 48\xe2\x96\x95 protected static function throwBadMethodCallException($method)\n 49\xe2\x96\x95 {\n \xe2\x9e\x9c 50\xe2\x96\x95 throw new BadMethodCallException(sprintf(\n 51\xe2\x96\x95 'Call to undefined method %s::%s()', static::class, $method\n 52\xe2\x96\x95 ));\n 53\xe2\x96\x95 }\n 54\xe2\x96\x95 }\n\n \xe2\x80\xa2 Bad Method Call: Did you mean App\\Models\\Category::toArray() ?\n\n +3 vendor frames\n 4 database/seeders/DatabaseSeeder.php:38\n Illuminate\\Database\\Eloquent\\Model::__callStatic()\n\n +22 vendor frames\n 27 artisan:37\n Illuminate\\Foundation\\Console\\Kernel::handle()\nRun Code Online (Sandbox Code Playgroud)\n这是databaseseeder.php 类,因为存在错误:
\n<?php\n\nnamespace Database\\Seeders;\n\nuse App\\Models\\Category;\nuse App\\Models\\Product;\nuse App\\Models\\Transaction;\nuse App\\Models\\User;\nuse Illuminate\\Database\\Seeder;\n\nuse Illuminate\\Support\\Facades\\DB;\n\nclass DatabaseSeeder extends Seeder\n{\n /**\n * Seed the application's database.\n *\n * @return void\n */\n public function run()\n {\n // \\App\\Models\\User::factory(10)->create();\n\n DB::statement('SET FOREIGN_KEY_CHECKS=0');\n\n User::truncate();\n Category::truncate();\n Product::truncate();\n Transaction::truncate();\n DB::table('category_product')->truncate();\n\n $cantidadUsuarios = 200;\n $cantidadCategories = 30;\n $cantidadProductos = 1000;\n $cantidadTransacciones = 1000;\n\n \\App\\Models\\User::factory()->count($cantidadUsuarios)->create();\n \\App\\Models\\Category::factory()->count($cantidadUsuarios)->create();\n\n \\App\\Models\\Product::factory()->count($cantidadTransacciones)->create()->each (\n function ($producto) {\n $categorias = Category::all()->random(mt_rand(1, 5))->pluck('id');\n $producto->categories()->attach($categorias);\n }\n );\n\n \\App\\Models\\Transaction::factory()->count($cantidadTransacciones)->create();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n有错误行:
\n\\App\\Models\\Category::factory()->count($cantidadUsuarios)->create();\nRun Code Online (Sandbox Code Playgroud)\n这里我们得到了类别类:
\n<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Category extends Model\n{\n public $table = "categories";\n\n protected $fillable = [\n 'name',\n 'description',\n ];\n}\nRun Code Online (Sandbox Code Playgroud)\n这里我们得到了类别工厂:
\n<?php\n\nnamespace Database\\Factories;\n\nuse App\\Models\\Category;\nuse Illuminate\\Database\\Eloquent\\Factories\\Factory;\n\nclass CategoryFactory extends Factory\n{\n /**\n * The name of the factory's corresponding model.\n *\n * @var string\n */\n protected $model = Category::class;\n\n /**\n * Define the model's default state.\n *\n * @return array\n */\n public function definition()\n {\n return [\n //\n 'name' => $this->faker->word,\n 'description' => $this->faker->paragraph(1),\n ];\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n这是类别迁移:
\n<?php\n\nuse App\\Models\\Product;\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Support\\Facades\\Schema;\n\nclass CreateCategoriesTable extends Migration\n{\n /**\n * Run the migrations.\n *\n * @return void\n */\n public function up()\n {\n Schema::create('categories', function (Blueprint $table) {\n $table->increments('id');\n $table->string('name');\n $table->string('description', 1000);\n $table->integer('quantity')->unsigned();\n $table->string('status')->default(Product::PRODUCTO_NO_DISPONIBLE);\n $table->string('image');\n $table->integer('seller_id')->unsigned();\n $table->timestamps();\n\n $table->foreign('seller_id')->references('id')->on('users');\n });\n }\n\n /**\n * Reverse the migrations.\n *\n * @return void\n */\n public function down()\n {\n Schema::dropIfExists('categories');\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我发布了您需要的所有内容,因为我是新手,而且找不到问题。
\nIGP*_*IGP 47
从 Laravel 8 开始,您需要使用模型的工厂特征才能使该factory()方法可用。
class Category extends Model
{
use HasFactory;
...
}
Run Code Online (Sandbox Code Playgroud)
Arm*_*gar 13
请遵循以下代码:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63720 次 |
| 最近记录: |