Факер получает streetAddress, выбрасывающий ErrorException - PullRequest
0 голосов
/ 17 марта 2020

Я создаю laravel приложение и создал FakerServiceProvider для заполнения фабрик для тестирования и локального устройства.

<?php

namespace App\Providers;

use Faker\Factory;
use Faker\Generator;
use Faker\Provider\en_GB\Address;
use Faker\Provider\en_GB\Person;
use Faker\Provider\en_GB\PhoneNumber;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Support\ServiceProvider;

/**
 * Class FakerServiceProvider
 * @package App\Providers
 */
class FakerServiceProvider extends ServiceProvider implements DeferrableProvider
{
    /**
     *
     */
    public function register()
    {
        $this->app->singleton(Generator::class, function ($app) {
            $factory = Factory::create('en_GB');
            $factory->addProvider(Person::class);
            $factory->addProvider(Address::class);
            $factory->addProvider(PhoneNumber::class);

            return $factory;
        });
    }

    /**
     * @return array
     */
    public function provides()
    {
        return [Generator::class];
    }
}

Я создал фабрику адресов:

<?php

use App\Address;
use App\Country;

$factory->define(Address::class, function (Faker\Generator $faker) {
    return [
        'line_1' => $faker->secondaryAddress,
        'line_2' => $faker->streetAddress,
        'town' => $faker->city,
        'county' => $faker->county,
        'country_id' => factory(Country::class)->make()->id,
        'postcode' => $faker->postcode,
        'phone' => $faker->phoneNumber,
    ];
});

Когда я пытаюсь использовать эту фабрику, я получаю следующую ошибку: ErrorException: call_user_func_array() expects parameter 1 to be a valid callback, non-static method Faker\Provider\Address::streetAddress() should not be called statically

Я проверил источник для библиотеки Faker и есть метод streetAddress здесь

Я попытался вызвать оба $faker->streetAddress и $ faker-> streetAddress () with no luck. I would expect $ faker-> streetAddress to produce something like `или что-то подобное.

Может кто-нибудь пролить немного света на это для меня

1 Ответ

0 голосов
/ 20 марта 2020

Удаление добавленных провайдеров в Faker Service Provider решило проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...