我已经创建了一个类别表,我想使用Faker和Factory提供一些假数据,在使用please db之后:seed我得到了InvalidArgumentException未知格式的错误"Str",我已经按照itellisense建议尝试了每种格式,以及语法,在这两种情况下,我都得到了相同的错误,我尝试了每一件事情,但是没有得到任何令人满意的解决方案,如果可以的话,请告诉我,这里是我的和代码CategoryFactory.php和DatabaseSeeder.php,下面是我得到的错误。
*这是我的CategoryFactory代码
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\odel:Categories>
*/
class CategoriesFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
$cname = $this->faker->unique()->words($nb = 2, $asText = true);
// $cslug = Str::slug($cname, $separator = '-', $language = 'en' );
$cslug = Str::slug($cname, '-');
return [
'category_name' => $cname,
'category_slug' => $cslug
];
}
}
DatabaseSeeder.php代码
<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use App\Models\Categories;
use App\Models\Products;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
Categories::factory()
->count(6)
->create();
Products::factory()
->count(16)
->create();
}
}
**
我觉得这是个错误
**
InvalidArgumentException
PS C:\xampp\htdocs\eclobber> php artisan db:seed
INFO Seeding database.
InvalidArgumentException
***Unknown format "Str"***
at C:\xampp\htdocs\eclobber\vendor\fakerphp\faker\src\Faker\Generator.php:731
727▕ return $this->formatters[$format];
728▕ }
729▕ }
730▕
➜ 731▕ throw new \InvalidArgumentException(sprintf('Unknown format "%s"', $format));
732▕ }
733▕
734▕ /**
735▕ * Replaces tokens ('{{ tokenName }}') with the result from the token method call
1 C:\xampp\htdocs\eclobber\vendor\fakerphp\faker\src\Faker\Generator.php:696
Faker\Generator::getFormatter("Str")
2 C:\xampp\htdocs\eclobber\vendor\fakerphp\faker\src\Faker\Generator.php:961
Faker\Generator::format("Str", [])
发布于 2022-10-18 00:32:18
我删除了工厂中的所有相关文件,并重新建模并重新创建了它。我还将PHP从8.0.9升级到8.1.1,并修改了composer.json文件"fakerphp/faker":"^1.9.1"(php 8.0.9)。
"require-dev":
{"fakerphp/faker": "^1.20",
完成此操作后,它的修复将自动进行。
发布于 2022-10-17 04:51:05
这些字段可能不受faker的支持。试着做这样的事情:
DB::table('categories')->insert([
'name' => $faker->name,
...
...
...
]);
https://stackoverflow.com/questions/74091510
复制相似问题