首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >[Larvel9.35.1][php8.0.9]上的InvalidArgumentException未知格式"Str“

[Larvel9.35.1][php8.0.9]上的InvalidArgumentException未知格式"Str“
EN

Stack Overflow用户
提问于 2022-10-17 00:16:28
回答 2查看 99关注 0票数 0

我已经创建了一个类别表,我想使用Faker和Factory提供一些假数据,在使用please db之后:seed我得到了InvalidArgumentException未知格式的错误"Str",我已经按照itellisense建议尝试了每种格式,以及语法,在这两种情况下,我都得到了相同的错误,我尝试了每一件事情,但是没有得到任何令人满意的解决方案,如果可以的话,请告诉我,这里是我的和代码CategoryFactory.php和DatabaseSeeder.php,下面是我得到的错误。

*这是我的CategoryFactory代码

代码语言:javascript
运行
复制
<?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代码

代码语言:javascript
运行
复制
<?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();
    }
}

代码语言:javascript
运行
复制
**

我觉得这是个错误

**

代码语言:javascript
运行
复制
 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", [])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-18 00:32:18

我删除了工厂中的所有相关文件,并重新建模并重新创建了它。我还将PHP从8.0.9升级到8.1.1,并修改了composer.json文件"fakerphp/faker":"^1.9.1"(php 8.0.9)。

代码语言:javascript
运行
复制
"require-dev": 
{"fakerphp/faker": "^1.20", 

完成此操作后,它的修复将自动进行。

票数 0
EN

Stack Overflow用户

发布于 2022-10-17 04:51:05

这些字段可能不受faker的支持。试着做这样的事情:

代码语言:javascript
运行
复制
DB::table('categories')->insert([
            'name' => $faker->name,
            ...
            ...
            ...
        ]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74091510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档