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件のコメント