1
$factory->define(App\Client::class, function (Faker\Generator $faker) {
    static $password;

    $company_name = $faker->Company;

    return [
        'name' => $company_name,
        'short_name' => substr($company_name, 0, 3),
        'email' => $faker->unique()->safeEmail,
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
    ];
});



$factory->define(App\Campaign::class, function (Faker\Generator $faker) {
    static $password;

    return [
        'unique_id' => $faker->numerify('ABC###'),
        'client' => function() {
            return factory('App\Client')->create()->id;
        }

    ];
});

我正在产生客户和活动。一个客户可以有多个广告系列

如何从公司获取short_name并将其传递给活动类,以便我可以将其附加到随机字符串以在客户端中创建唯一 ID?

4

1 回答 1

2

您快到了。您不需要在活动类中使用匿名函数,factory直接引用即可。在 Campaign 工厂中使用一个变量,只需引用您需要的任何值。

$factory->define(App\Campaign::class, function (Faker\Generator $faker) {
    $client = factory(App\Client::class)->create();

    return [
        'unique_id' => $faker->numerify('ABC###') . $client->short_name,
        'client' => $client->id

    ];
});
于 2017-05-10T14:47:09.393 回答