如何使用 Laravel Faker 在最小和最大字符数之间生成随机字符串

mis*_*irl 6 php faker laravel

我正在寻找一种使用 laravel Faker 生成最小和最大字符数之间的随机字符串的方法。我必须在420字符之间创建随机字符串。此方法str_random将生成正好 20 个字符,但如何指定最小字符数?

<?php

use Faker\Generator as Faker;

$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => str_random(20),
    ];
});
Run Code Online (Sandbox Code Playgroud)

更新:我现在使用以下代码作为解决方法:

'name' => substr($faker->name(), 0, rand(4, 20))
Run Code Online (Sandbox Code Playgroud)

Lat*_*san 5

您可以使用regexifyand 这让您可以控制随机生成的字符串中可以包含哪些字符,如下所示:

<?php

use Faker\Generator as Faker;

$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->regexify('[A-Za-z0-9]{' . mt_rand(4, 20) . '}'),
    ];
});
Run Code Online (Sandbox Code Playgroud)

另一种选择是$faker->realText(mt_rand(4, 20))