繁体   English   中英

Laravel Faker 未知格式化程序

[英]Laravel Faker Unknown formatter

我已经尝试了所有可能的方法,但我无法深入了解我做错了什么。 我试图用虚拟数据加载我的数据库,但我一直得到未知的格式化程序“描述”。 描述是我正在使用的变量之一。

下面是我的工厂代码和我的播种机编码器

use Faker\Generator as Faker;
use Analytics\Blockgrant;

$factory->define(Blockgrant::class, function (Faker $faker) {
    return [
        'description' => $faker->description,
        'value' => $faker->value
    ];
});

<?php

use Faker\Generator as Faker;
use Universityobfanalytics\Blockgrantcomponents;

$factory->define(Blockgrantcomponents::class, function (Faker $faker) {
    return [
        'blockgrants_id' => $faker->blockgrants_id,
        'description' => $faker->description,
        'percentage' => $faker->percentage,
        'value' => $faker->value
    ];
});

<?php

use Illuminate\Database\Seeder;
use Analytics\Blockgrant;
use Analytics\Blockgrantcomponents;

class BlockgrantSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(Blockgrant::class, 10)->create()->each(function ($blockgrant) {
            $blockgrant->blockgrantcomponents()->save(factory(Blockgrantcomponents::class)->create());

        });
    }
}

我正在使用一对一的hasOnebelongsTo关系

有人可以告诉我我做错了什么吗?

我已经尝试了所有可能的方法,但是我无法弄清自己做错了什么。 我正在尝试用虚拟数据加载数据库,但是我一直得到未知的格式化程序“描述”。 说明是我正在使用的变量之一。

下面是我的工厂代码和播种机代码

use Faker\Generator as Faker;
use Analytics\Blockgrant;

$factory->define(Blockgrant::class, function (Faker $faker) {
    return [
        'description' => $faker->description,
        'value' => $faker->value
    ];
});

<?php

use Faker\Generator as Faker;
use Universityobfanalytics\Blockgrantcomponents;

$factory->define(Blockgrantcomponents::class, function (Faker $faker) {
    return [
        'blockgrants_id' => $faker->blockgrants_id,
        'description' => $faker->description,
        'percentage' => $faker->percentage,
        'value' => $faker->value
    ];
});

<?php

use Illuminate\Database\Seeder;
use Analytics\Blockgrant;
use Analytics\Blockgrantcomponents;

class BlockgrantSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(Blockgrant::class, 10)->create()->each(function ($blockgrant) {
            $blockgrant->blockgrantcomponents()->save(factory(Blockgrantcomponents::class)->create());

        });
    }
}

我正在使用一对一的hasOnebelongsTo关系

有人可以告诉我我做错了什么吗?

我已经尝试了所有可能的方法,但是我无法弄清自己做错了什么。 我正在尝试用虚拟数据加载数据库,但是我一直得到未知的格式化程序“描述”。 说明是我正在使用的变量之一。

下面是我的工厂代码和播种机代码

use Faker\Generator as Faker;
use Analytics\Blockgrant;

$factory->define(Blockgrant::class, function (Faker $faker) {
    return [
        'description' => $faker->description,
        'value' => $faker->value
    ];
});

<?php

use Faker\Generator as Faker;
use Universityobfanalytics\Blockgrantcomponents;

$factory->define(Blockgrantcomponents::class, function (Faker $faker) {
    return [
        'blockgrants_id' => $faker->blockgrants_id,
        'description' => $faker->description,
        'percentage' => $faker->percentage,
        'value' => $faker->value
    ];
});

<?php

use Illuminate\Database\Seeder;
use Analytics\Blockgrant;
use Analytics\Blockgrantcomponents;

class BlockgrantSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(Blockgrant::class, 10)->create()->each(function ($blockgrant) {
            $blockgrant->blockgrantcomponents()->save(factory(Blockgrantcomponents::class)->create());

        });
    }
}

我正在使用一对一的hasOnebelongsTo关系

有人可以告诉我我做错了什么吗?

我正在使用Pest ,并且在尝试在我的项目中编写单元测试时遇到了同样的错误,我的解决方案是:

在文件tests/Pest.php中,我有这样一行:

uses(Tests\TestCase::class)->in('Feature');

我把它改成了这个并且它有效

uses(Tests\TestCase::class)->in('Feature', 'Unit');

在 class Test/TestCase中,记得在构造函数中调用parent::setup() ,如下所示:

 protected function setUp(): void
{
    try {
        parent::setUp();
    } catch (QueryException $e) {
        file_put_contents(
            getcwd() . '/testing_env_log',
            json_encode([
                'db' => Config::get('database'),
                'env' => $_ENV,
                'app' => Config::get('app'),
            ], JSON_THROW_ON_ERROR)
        );

        throw $e;
    }
    Event::fake();
}

您需要创建自己的 TestCase class,它将使用您创建的 CreatesApplication 特征。
所有这一切看起来像这样:

class TestCase extends BaseTestCase
{
    use CreatesApplication;
}
trait CreatesApplication
{
    public function createApplication(): Application
    {
        $app = require __DIR__.'/../bootstrap/app.php';

        $app->make(Kernel::class)->bootstrap();

        return $app;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM