首页 > 解决方案 > 在 laravel 中创建数据表时出现错误

问题描述

有谁知道为什么在为我的工作类别创建数据表时会出现此错误?

DatabaseSeeder.php

<?php


use Illuminate\Database\Seeder;

// Import DB and Faker services
use Illuminate\Support\Facades\DB;
use Faker\Factory as Faker;

class DatabaseSeeder extends Seeder
{
/**
 * Seed the application's database.
 *
 * @return void
 */
public function run()
{
    // \App\Models\User::factory(10)->create();

    $faker = Faker::create();

   

    foreach (range(1,150) as $index) {
        DB::table('jobs')->insert([
            'company' => $faker->company,
            'category' => $faker->category,
            'position' => $faker->position,
            'description' => $faker->description,
            'salary_from' => $faker->salary_from,
            'salary_to' => $faker->salary_to,
            'status' => $faker->status,

            
        ]);
   }
}  
}

我的错误是

 InvalidArgumentException 

Unknown formatter "category"

at C:\xampp\htdocs\job\vendor\fakerphp\faker\src\Faker\Generator.php:300
296▕                 return $this->formatters[$formatter];
297▕             }
298▕         }
299▕ 
➜ 300▕         throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter));
301▕     }
302▕ 
303▕     /**
304▕      * Replaces tokens ('{{ tokenName }}') with the result from the token method call

1   C:\xampp\htdocs\job\vendor\fakerphp\faker\src\Faker\Generator.php:278
  Faker\Generator::getFormatter("category")

2   C:\xampp\htdocs\ob\vendor\fakerphp\faker\src\Faker\Generator.php:497
  Faker\Generator::format("category")

这是我第一次创建数据表,我是laravel的新手,所以在检查后我发现使用数据表生成数据要简单得多

标签: phpjquerylaravel

解决方案


您正在使用 faker 不支持的某些字段。在此处查看可用字段:https ://github.com/fzaninotto/Faker 。

在此处查看带有更新字段的示例:

   DB::table('jobs')->insert([
            'company' => $faker->company,
            'category' => $faker->word,
            'position' => $faker->randomDigit,
            'description' => $faker->text,
            'salary_from' => $faker->randomDigit,
            'salary_to' => $faker->randomDigit,
            'status' => $faker->numberBetween(1, 3), // Change to available statusses         
        ]);

推荐阅读