Посев с помощью TestDummy и Faker

Я пытаюсь выяснить, что я делаю неправильно, и / или лучший способ справиться с этой ситуацией.

Цели:

  • Чтобы иметь возможность добавить себя в качестве пользователя, а также иметь 200 других пользователей
    вставлен в базу данных.
  • Вставьте статические данные для себя в отдельную таблицу для профилей и случайные данные для всех других пользователей в таблицу базы данных.
  • Я хотел бы узнать, почему я продолжаю получать [InvalidArgumentException] Сообщение об ошибке «пароль» неизвестного форматера при запуске моих начальных файлов в консоли.

UsersTableSeeder

<?php

use Illuminate\Database\Seeder;

use Laracasts\TestDummy\Factory as TestDummy;
use App\User;

class UsersTableSeeder extends Seeder {

public function run()
{
User::create([
'first_name' => 'Secret',
'last_name' => 'Secret',
'username' => 'secret',
'email' => 'secret',
'password' => 'secret',
]);

TestDummy::times(200)->create('App\User');
}

}

UserProfilesTableSeeder.php

<?php

use Illuminate\Database\Seeder;

use Laracasts\TestDummy\Factory as TestDummy;
use App\UserProfile;

class UserProfilesTableSeeder extends Seeder {

public function run()
{
UserProfile::create([
'user_id' => '1',
'avatar' => 'secret.jpg',
'bio' => 'This is just my personal biography!',
'address' => '1234 Secret Lane',
'city' => 'Secret',
'state' => 'Secret',
'postcode' => '12345',
'country' => 'United States',
'phone' => '123-456-7890',
'birthday' => '1988-09-04'
]);

TestDummy::create('App\UserProfile');
}

}

PHP-файл фабрики

<?php

$factory('App\User', [
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => $faker->userName,
'email' => $faker->email,
'password' => $faker->password
]);

$factory('App\UserProfile', [
'user_id' => 'factory:App\User',
'bio' => $faker->sentence(100),
'avatar' => $faker->imageUrl($width = 640, $height = 480),
'address' => $faker->optional($weight = 0.9)->address,
'city' => $faker->optional($weight = 0.9)->city,
'state' => $faker->optional($weight = 0.9)->state,
'postcode' => $faker->optional($weight = 0.9)->postcode,
'country' => $faker->optional($weight = 0.9)->country,
'phone' => $faker->optional($weight = 0.9)->phoneNumber,
'birthday' => $faker->optional($weight = 0.9)->dateTimeBetween('-40 years', '-18 years')
]);

1

Решение

Это известная проблема версии, когда вы устанавливаете фейкер из пакета composer. Увидеть эта тема GitHub:

Обходной путь для этого использует форматирование слова:

//factories
$factory('App\User', [
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => $faker->userName,
'email' => $faker->email,
'password' => $faker->word
]);

Также я рекомендую вам хэшировать пароли, как хорошая практика даже в тестовых данных, используйте метод хэширования:

App::make('hash')->make($faker->word);
4

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

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

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