2017-09-04 10 views
1

私はLaravel 5.5の工場を使っていくつかのテストデータを作成しようとしています。私は、エラーメッセージ列「のuser_id」を取得し、このLaravelの別のファクトリでUserインスタンスを作成するにはどうすればよいですか?

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

を実行しています

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) 
)' 

nullにすることはできません私のスレッドファクトリは、新しいインスタンスのユーザーを作成し、返されていないようです値。

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()の代わりに - > create()を使用する必要があります。 –

+0

違いは何ですか?私は3人のユーザーがどちらの方法でデータベースに追加されたのを見る。私はmakeがそれらを保存しないと思った。 – NinjaCoder

答えて

0

私は、彼らが異なっていた知らなかった

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

代わりの

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

を入力しました。

関連する問題