Laravel의 Faker (예 : 임의의 건물 이름)에 대한 사용자 지정 공급자를 만들고 싶습니다.Laravel에서 자체 Faker 공급자를 구현하는 방법
어디에서 응용 프로그램에 사용자 지정 공급자를 저장하고 사용합니까?
Laravel의 Faker (예 : 임의의 건물 이름)에 대한 사용자 지정 공급자를 만들고 싶습니다.Laravel에서 자체 Faker 공급자를 구현하는 방법
어디에서 응용 프로그램에 사용자 지정 공급자를 저장하고 사용합니까?
당신은 사용자 지정 공급자를 생성하는 php artisan
를 사용해야합니다 ... 명령 행에서
앱 및 유형의 루트로 이동 ...
php artisan make:provider FakerServiceProvider
가 새로운 프로 바이더를 생성한다
app/Providers
폴더에 있습니다. 다음은 내 등록 기능이 faker 문서의 예제에서 벗어나는 것입니다.
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton('Faker', function($app) {
$faker = \Faker\Factory::create();
$newClass = new class($faker) extends \Faker\Provider\Base {
public function title($nbWords = 5)
{
$sentence = $this->generator->sentence($nbWords);
return substr($sentence, 0, strlen($sentence) - 1);
}
};
$faker->addProvider($newClass);
return $faker;
});
}
여기 익명 클래스가 사용됩니다. PHP가 < 인 경우 새 공급자 클래스로 새 파일을 만들고이를 전달해야 할 가능성이 높습니다.이 새로운 공급자를 providers
배열에 app/config.php
에 추가해야합니다. 이제이 등록되어 있음을
, 당신은 https://laravel.com/docs/5.2/facades의 문서를 통해 이동하는 경우도 Faker
외관을 확실히 할 수 있어야한다, 또한 ... 다음 사용
$faker = app('Faker');
echo $faker->title;
을 새 사기꾼 클래스를 잡을 수 있습니다 용이하게. 모든 무거운 짐을 싣고, 당신은 단지 getFacadeAccessor
반환 'Faker'
, 가지고 있고 facades
배열에 app/config.php
에 추가해야 새로운 외관 수업을 만들어야 겠어.
그럼 당신은 단순히 ...과 같이
echo Faker::title;
를 사용할 수 있습니다 내가 가진'$ 공장 -> 정의 (응용 프로그램 \ 사용자 : 클래스, 기능 (위조자 \ 발전기 $의 사기꾼) {...' 공장에서, 나는 바인딩 이름을'Faker \ Generator'로 바 꾸었습니다. –
@ x-yuri 당신이 한 일에 대해 더 정확하게 말할 수 있습니까? 내 프로젝트와 비슷한 요구 사항이 있습니다. –
@ rap-2-h 할 수있는 것부터 아마도 응답의 코드가'Faker' 클래스 ('$ this-> app-> singleton ('Faker'...'))에 바인딩된다는 것을 의미했을 것입니다. 그러나''Faker \ Generator''가''database/factories'에서'Faker \ Generator'를 사용하여 여분의 포맷터 (이 경우'title')를 사용할 수 있습니다. –