دوستان من دارم از یه پکیج فارسی برای faker داخل لاراول استفاده می کنم ولی موقعی که می خوام اطلاعات رو seed کنم این اررور رو بهم برمیگردونه
اینم کدم !
use App\Soldier;
use App\User;
use Carbon\Carbon;
use Illuminate\Support\Str;
use Ybazli\Faker\Faker as Faker;
$factory->define(Soldier::class, function (Faker $faker) {
return [
'first_name' => $faker->firstName(),
'last_name' => $faker->lastName(),
'fathers_name' => $faker->firstName(),
'identification_code' => $faker->mellicode(),
'birth_date' => Carbon::create(1994, 6, 15, 0, 0, 0),
'marital_status' => 'single',
'email' => $faker->email(),
'mobile' => $faker->mobile(),
'phone' => $faker->telephone(),
'address' => $faker->address(),
'description'=>$faker->sentence(),
];
});
اینم هم متن اررور . در صورتی که من Faker رو درست use کردم اون بالا !
Argument 1 passed to Illuminate\Database\Eloquent\Factory::{closure}() must be an instance of Ybazli\Faker\Faker, instance of Faker\Generator given
@h.r.hassani
دقیقا کجا باید اسمش رو عوض کنم ؟
https://github.com/Ybazli/faker
این پکیجی هست که استفاده کردم
@ham.sarkhosh
نه منظورم اینه که به جای اینکه این رو بنویسی
use Ybazli\Faker\Faker as Faker;
مثلا اینو بنویس
use Ybazli\Faker\Faker as farsiFaker;
احتمالا وقتی اسم پکیج فارسی رو هم Faker می نویسی لاراول فک می کنه که این فیکر اصلیه برای همین خطا می ده
می خواهی این کار رو بکن شاید جواب داد
use Ybazli\Faker\Faker as Faker;
$farsifaker = app(Faker::class);
$factory->define(Soldier::class, function (Faker\Generator $mainfaker) use($faker) {...}
کلا این پکیج رو use نکن
چون بدون use کردن برای من داره جواب میده
مطمئن باش که این مقدار رو به providers
Ybazli\Faker\FakerServiceProvider::class,
و اینو به aliases اضافه کرده باشی
'Faker' => Ybazli\Faker\Facades\Faker::class,
@ar4min
قبلا اضافه کرده بودم اینارو
ولی بازم تست کردم جواب نداد.
میشه یه نمونه کد از کاری که کردی رو برام بفرستی ؟ از همون کد factory
@ham.sarkhosh
اگر اینطوری مشکلت حل نمی شه کلا از factory ها استفاده نکن . برو توی seed ها و توی یه لوپ یه سری مقادیر رو با همین فیکر فارسی توی دیتابیس insert کن
بجای اینکه از این پکیج استفاده کنی میتونی از faker خود لاراول استفاده کنی فقط کافیه بری توی فایل config/app.php
و اونجا این مقدار رو تغییر بدی 'faker_locale' => 'fa_IR',
اونوقت fakerلاراول برات فارسی میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟