@D44k

Как в php fzaninotto/Faker получить данные без сохранения в базу?

Пишу тесты для приложения. Необходимо проверить обновление пользователя.
Faker настроен и работает.
$user = create('App\User')->toArray();
так я могу получить сгенерированные данные пользователя, но при этом сам пользователь сохраняется в базу.
Как я могу получить эти данные без сохранения, а просто в переменную?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Как я могу получить эти данные без сохранения, а просто в переменную?
Что делает функция create в Вашем случае? Есть подозрение, что это функция не фейкера и/или эта функция как раз напрямую отвечает за создание (сохранения) записи в БД.

Вариантов тут, основных, пожалуй два:
1. Плохой вариант. Проводить операцию в транзакции и откатывать её в последствии.
2. Генерировать данные без сохранения оных в базу, нашел пример в документации:
// use the factory to create a Faker\Generator instance
$faker = Faker\Factory::create();

// generate data by accessing properties
echo $faker->name;
  // 'Lucy Cechtelar';
echo $faker->address;
  // "426 Jordy Lodge
  // Cartwrightshire, SC 88120-6700"
echo $faker->text;
  // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
  // et sit et mollitia sed.
  // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
  // sit minima sint.


P.S. Примера функции create() в чистом виде, при беглом осмотре, в документации фейкера - мне найти не удалось. Более того, я не нашел в документации ни слова о том, что фейкер умеет сам что-то сохранять в базу, есть только примеры, как сохранять данные в БД которые генерирует фейкер с помощью разных ORM и им подобных штуковин.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы