php - 使用显示的命令时出现错误“未定义的变量:工厂”
问题描述
我是 Laravel 的新手,我一直在尝试使用 Laravel 将假数据生成到我的数据库中,但我收到错误未定义的变量:工厂。下面的命令在laravel8中还能用吗?如果不是,还有哪些其他代码可以用来显示数据?
CategoryFactory
$factory->define(Category::class,function (Faker $faker){
$title = $faker->sentence;
return[
'title'=>$this->faker->sentence,
'slug'=>Str::slug($title),
];
});
Category Seeders
namespace Database\Seeders;
use App\Models\Category;
use Illuminate\Database\Seeder;
class CategorySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Category::factory()->count(10)->create();
}
}
Category Migration
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->id();
$table->string("title");
$table->string("slug",191)->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('categories');
}
}
解决方案
在 Laravel 8.X 中,模型工厂已经被重写以使用类。
如果你想在 Laravel 8.X 中使用旧版 Factory,你必须安装包:composer require laravel/legacy-factories
.
但是,如果您还没有编写任何工厂,我建议您definition()
在类中使用该函数,CategoryFactory
如您的示例所示。可以删除其他代码。
有关工厂以及如何编写和使用它们的更多信息,请参阅Laravel 文档。
推荐阅读
- java - 在 Java 中使用文件
- pygame - 如何使我的变量在我单击 pygame 中的按钮时仅增加一个,以及如何使文本更新
- google-bigquery - 数据流作业+大查询
- sql - 尽管使用了 distinct 函数,但没有获得唯一值
- assembly - 如何在一个将自己缝合到自己的尾部的程序中,无限地环绕在 64KB 代码段中?
- powerapps - 文件未从 powerapp 的自定义连接器下载
- azure-devops - 自定义管道资源变量
- google-apps-script - 为什么即使没有调用函数也会运行?
- python - 如何更新 PySpark 中的 pyspark.sql.Row 对象?
- wcf - IIS 托管 WCF Https 使用标记位置来控制对不同端点的访问