Laravel / faker使用无效的列名

时间:2017-03-17 12:22:25

标签: php laravel faker

我正在运行三天前创建的Laravel 5.4项目。

我在ModelFactory.php

中有这个
$factory->define(\App\Models\Definition::class, function (Faker\Generator $faker) {
$tag = "tag";
$category = "cat";

return [
    'name' => $faker->words,
    'description' => $faker->realText,
    'tags' => $tag,
    'price' => $faker->numberBetween(500, 50000),
    'category' => $category
];
});

在我的DatabaseSeeder.php run()

DB::table('definitions')->truncate();
factory(Definition::class, 200)->create();

但是当我跑db:seed时,我会继续:

  

SQLSTATE [HY000]:一般错误:1个表定义没有名为0的列(SQL:插入"定义"(" 0"," 1" ," 2")选择quia为" 0",不,没有剩下的拱门,所有的都是湿润的,交叉的,不舒服的。      我已经得到了很多东西。 (爱丽丝没有理由因为在游行中提出这样的规则而感到羞耻;因为" 1",     1302 as" 2"联盟所有选择猫作为" 0",2017-03-17 10:51:53 as" 1",2017-03-17 10:51:53 as" 2& #34; UNI     在所有选择? as" 0",? as" 1",? as" 2"联盟所有选择? as" 0",? as" 1",? as" 2"联盟所有选择? as" 0",      ? as" 1",? as" 2"联盟所有选择? as" 0",? as" 1",? as" 2"联盟所有选择? as" 0",? as" 1",? as" 2")

我的表架构:

Schema::create('definitions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('description')->nullable();
        $table->integer('price');
        $table->json("tags");
        $table->string('category');
        $table->unsignedInteger('x_id')->nullable(); 
        $table->nullableTimestamps();

我的Definition类中有$guarded = [];。我想也许这是一个骗子,因为我没有想法。

1 个答案:

答案 0 :(得分:1)

 'description' => $faker->realText

这应该是一个功能。

 'description' => $faker->realText()

另外

 'name' => $faker->words

应该是一个函数,但它返回一个数组,而不是一个字符串。 你可以用

 'name' => $faker->name()

 'name' => $faker->sentence(3)

如果你只想要一个3个字的句子。