Laravelでテスト書いていたら以下のエラーが出たので、原因と解決方法を記載しておきます。
今回起きたエラーはこちらになります。
PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 2 in /var/www/hogehoge/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:64
原因なのですが、seederのデータに新しい項目を追加したのですが、一部しかデータを修正しなかったのですが原因のようでした。
こちらがダメなseederになります。
[ [ 'id' => 1, 'name' => 'test1', 'email' => 'test1@gmail.com', ], [ 'id' => 2, 'name' => 'test2', ], ]
片方のデータだけにemailがあるとseederは通らないようです。
以下のように、全てのデータにemailの項目を追加して揃えるとエラーは解決します。
[ [ 'id' => 1, 'name' => 'test1', 'email' => 'test1@gmail.com', ], [ 'id' => 2, 'name' => 'test2', 'email' => 'test2@gmail.com', ], ]
一つのデータだけカラムが多かったりするとエラーが発生するので、こちらのエラーが発生したらseederを確認してみてください。
0件のコメント