本文介绍了如何用$ faker-> word获得唯一的价值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在laravel 5.8应用程序中,我进行测试并为遇到该行的任何测试添加新用户

In laravel 5.8 app I make tests and adding new user for any tests I encountered that line

$loggedUser= factory(User::class)->create();

引发错误:

Doctrine\DBAL\Driver\PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Username pariatur' for key 'users_username_unique'

工厂定义的:

$factory->define(App\User::class, function (Faker $faker) {
    $username= 'Username ' . $faker->word;
    return [
        'username' => $username,

我不清除数据库,但是如何进行一系列测试却对任何测试都一无所知?

I do not clear database, but how to make in series of tests get unqiue word for any test?

推荐答案

Faker提供了三个特殊的提供程序,例如 unique() optional() valid(),在任何提供程序之前调用.

Faker provides three special providers like unique(), optional(), and valid(), to be called before any provider.

//use unique() before calling the method
$faker->unique()->name;

这篇关于如何用$ faker-> word获得唯一的价值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 16:38