如何在Laravel的另一家工厂创建用户实例?

如何在Laravel的另一家工厂创建用户实例?

问题描述:

我想在Laravel 5.5中使用工厂创建一些测试数据。我运行这个如何在Laravel的另一家工厂创建用户实例?

factory('App\Thread', 3)->create(); 

我得到错误信息列“USER_ID”不能为空

Column 'user_id' cannot be null (SQL: insert into thread 
s` (user_id, title, body, updated_at, created_at) values (, Quia modi 
aperiam eos aut., Sed voluptate ut quia ut. Et accusamus eaque est amet. Veniam 
consectetur exercitationem id facere., 2017-09-04 04:38:11, 2017-09-04 04:38:11) 
)' 

我的线程工厂创建新实例的用户,但它似乎并没有返回值。

use Faker\Generator as Faker; 

$factory->define(App\Thread::class, function (Faker $faker) { 

return [ 
    'user_id' => function() { 
       return factory('App\User')->make()->id; 
    }, 
    'title' => $faker->sentence, 
    'body' => $faker->paragraph, 
]; 
}); 

我还没有修改用户工厂。我已从documentation复制并粘贴,无法获取。任何帮助将不胜感激我是新来的,我相信这是简单的。

+0

你应该使用 - > create()代替 - > make()在线程工厂 –

+0

有什么区别?我看到有三个用户以任何方式添加到数据库中。我认为make不会拯救他们。 – NinjaCoder

我打字

factory(App\Thread::class, 3)->create(); 

代替

factory('App\Thread', 3)->create(); 

我不知道他们是不同的。