Laravel 5.1 工厂定义无法解决对外关系的关闭问题
Laravel 5.1 factory definition unable to resolve closure for foreign relationships
我在为我的业务模型定义处理外部关系的工厂函数时遇到问题。这是我的商业模式工厂的代码。我收到的错误消息是:
Uncaught exception 'ErrorException' with message 'Object of class
Closure could not be converted to string' in
/Users/patricia/Code/thank-views/vendor/laravel/framework/src/Illuminate/Database/Connection.php:390
Stack trace
似乎无法为用户解析id。当我 运行 它在修补程序中时,它会为这些字段创建具有闭包函数的模型。但是,我希望能够生成这些模型以用于我的 BusinessTest class。它无法解决这些依赖关系。我不确定解决这些依赖关系的最佳位置是在 ModelFactory 中还是代码库中的其他地方。
$factory->define(App\Business::class, function (Faker\Generator $faker) {
return [
'slug' => $faker->word,
'name' => $faker->name,
'end_card' => $faker->word,
'white_label' => $faker->boolean,
'white_label_url' => $faker->word,
'payment_header' => $faker->word,
'payment_amount' => $faker->randomNumber(),
'payment_amount_display' => $faker->word,
'payment_cost' => $faker->randomNumber(),
'payment_activated' => $faker->boolean,
'main_user_id' => function () {
return factory(App\User::class)->create()->id;
},
];});
可以改成:
'main_user_id' => $factory->create(\App\User::class)->id
或:
'main_user_id' => $faker->unique()->numberBetween($min = 1, $max = 50)
或:
'main_user_id' => $faker->unique()->randomDigit
我在为我的业务模型定义处理外部关系的工厂函数时遇到问题。这是我的商业模式工厂的代码。我收到的错误消息是:
Uncaught exception 'ErrorException' with message 'Object of class Closure could not be converted to string' in /Users/patricia/Code/thank-views/vendor/laravel/framework/src/Illuminate/Database/Connection.php:390 Stack trace
似乎无法为用户解析id。当我 运行 它在修补程序中时,它会为这些字段创建具有闭包函数的模型。但是,我希望能够生成这些模型以用于我的 BusinessTest class。它无法解决这些依赖关系。我不确定解决这些依赖关系的最佳位置是在 ModelFactory 中还是代码库中的其他地方。
$factory->define(App\Business::class, function (Faker\Generator $faker) {
return [
'slug' => $faker->word,
'name' => $faker->name,
'end_card' => $faker->word,
'white_label' => $faker->boolean,
'white_label_url' => $faker->word,
'payment_header' => $faker->word,
'payment_amount' => $faker->randomNumber(),
'payment_amount_display' => $faker->word,
'payment_cost' => $faker->randomNumber(),
'payment_activated' => $faker->boolean,
'main_user_id' => function () {
return factory(App\User::class)->create()->id;
},
];});
可以改成:
'main_user_id' => $factory->create(\App\User::class)->id
或:
'main_user_id' => $faker->unique()->numberBetween($min = 1, $max = 50)
或:
'main_user_id' => $faker->unique()->randomDigit