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を確認してみてください。

 

カテゴリー: PHP

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です