دوستان من دارم از یه پکیج فارسی برای 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
@ham.sarkhosh
اسم پکیجی که فیکر فارسی هست رو عوض کن .
@h.r.hassani
دقیقا کجا باید اسمش رو عوض کنم ؟
https://github.com/Ybazli/faker
این پکیجی هست که استفاده کردم
شاید پاسخ شما همینجا باشد
@ham.sarkhosh
نه منظورم اینه که به جای اینکه این رو بنویسی
use Ybazli\Faker\Faker as Faker;
مثلا اینو بنویس
use Ybazli\Faker\Faker as farsiFaker;
احتمالا وقتی اسم پکیج فارسی رو هم Faker می نویسی لاراول فک می کنه که این فیکر اصلیه برای همین خطا می ده
@h.r.hassani این کارو قبل اینکه سوال رو مطرح کنم تست کردم. جواب نداد
کلا این پکیج رو use نکن
چون بدون use کردن برای من داره جواب میده
مطمئن باش که این مقدار رو به providers
Ybazli\Faker\FakerServiceProvider::class,
و اینو به aliases اضافه کرده باشی
'Faker' => Ybazli\Faker\Facades\Faker::class,
@ar4min
قبلا اضافه کرده بودم اینارو
ولی بازم تست کردم جواب نداد.
میشه یه نمونه کد از کاری که کردی رو برام بفرستی ؟ از همون کد factory
@h.r.hassani نه متاسفانه اینم جواب نداد
@ham.sarkhosh
اگر اینطوری مشکلت حل نمی شه کلا از factory ها استفاده نکن . برو توی seed ها و توی یه لوپ یه سری مقادیر رو با همین فیکر فارسی توی دیتابیس insert کن