2016-04-02 30 views
1

Ben özel bir yol benim fabrikalar dizinini değiştirmeye çalışıyorum, bu yüzden bir laracasts thread gördüğümüz gibi bu kullanıyorum:Değişim fabrikaları yolu 5.2

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'); 
      }); 
    } 
} 

yeni yol işleri, benim fabrika Yeni dizinin içindeki dosyalar yüklenir. Ben php artisan migrate:refresh --seed üzerinde ekme gelen fabrikayı kullanmaya çalışırken Ama şimdi alıyorum

[InvalidArgumentException] Bilinmeyen biçimlendirici "ad" fabrika tanımı içinde $ faker örneğinden

:

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

Bu hata, yalnızca ad ile değil, tüm biçimlendiricilerle birlikte görüntülenir.

Sorun nerede? Yol değiştirmeden önce fabrika iyi çalışıyor.

cevap

1

Tamam, nihayet çalışması için nasıl bulundu:

$ app-> yapmak (FakerGenerator :: sınıfı)

:

<?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 hüner yok