Изменить путь заводов в Laravel 5.2

Я пытаюсь изменить каталог моей фабрики на собственный путь, поэтому я использую это, как я видел в нить laracasts:

use Illuminate\Database\Eloquent\Factory as Factory;

class FactoryServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->singleton(Factory::class, function () {
return Factory::construct(new Faker\Generator, app_path() .'/Core/Database/Factories');
});
}
}

Новый путь работает, мои заводские файлы внутри нового каталога загружены. Но теперь, когда я пытаюсь использовать фабрику от сеялок на php artisan migrate:refresh --seed я собираюсь

[InvalidArgumentException] Неизвестный форматер «имя»

из экземпляра $ faker внутри определения фабрики:

$factory->define(User::class, function (Faker\Generator $faker) {
return[
'name' => $faker->name,
'email' => $faker->freeEmail,
'password' => bcrypt($faker->word),
'remember_token' => str_random(10)
];
});

Эта ошибка появляется со всеми форматерами, а не только с именем.

В чем проблема? Фабрика работает нормально, прежде чем я изменить путь.

1

Решение

Хорошо, наконец я нашел, как заставить это работать:

<?php

use Faker\Generator as FakerGenerator;
use Illuminate\Database\Eloquent\Factory as EloquentFactory;
use Illuminate\Support\ServiceProvider;

class FactoryServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->singleton(EloquentFactory::class, function ($app){
$faker = $app->make(FakerGenerator::class);
$factories_path = 'Your/Custom/Path/To/Factories';
return EloquentFactory::construct($faker, $factories_path);
});
}
}

app->make делает трюк:

$ App-> сделать (FakerGenerator :: класс)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]