回答編集履歴

1 動作の再確認

choco14t

choco14t score 14

2018/07/21 15:05  投稿

DataBaseSeederでPostTableSeederを先にcallしてませんか?
記載されているファイルを元に`php artisan migrate:refresh --seed`を実行しましたが、正常に実行されました。
おそらくですが、DataBaseSeederでPostTableSeederを先にcallしてませんか?
子テーブルであるpostsのデータを先に生成しようとすると、
親テーブルであるprofilesのidが参照出来ずにエラーが発生します。
そのため、親テーブルであるprofilesのデータを先に生成してあげてください。
```php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
   /**
    * Seed the application's database.
    *
    * @return void
    */
   public function run()
   {
       $this->call(ProfileTableSeeder::class);
       $this->call(PostTableSeeder::class);
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る