Laravelで、データベースに作成してあるテーブルが「見つからない」エラーが起こったとき。
テーブル名を単数形にしていることが原因かもしれません。
思い当たったら、まずは単数形を複数形にしてみてください。
A table was not found
You might have forgotten to run your migrations. You can run your migrations using php artisan migrate.
Pressing the button below will try to run your migrations.
Base table or view not found: Laravelでテーブルが見つからない時の対策
テーブル名を変更するには、次のようにコマンドを入力します。
php artisan make:migration rename_変更前テーブル名_to_変更後テーブル名_table
1 |
php artisan make:migration rename_user_update_to_user_updates_table |
databaseのなかマイグレーションファイルができます。
下記のように修正をします。
public function up()
{
Schema::rename(‘変更前テーブル名, ‘変更後テーブル名’);
}
{
Schema::rename(‘変更前テーブル名, ‘変更後テーブル名’);
}
処理の巻き戻し部分も、忘れずに。
public function down()
{
Schema::rename(‘変更後テーブル名’, ‘変更前テーブル名’);
}
{
Schema::rename(‘変更後テーブル名’, ‘変更前テーブル名’);
}
これで、マイグレーションを実行します。
1 |
php artisan migrate |
データベースの名前が変更されています。
これでエラーが修正されたら万歳!
もしエラーの原因が気になる方は、この先も読んでください。
Base table or view not found: Laravelでテーブルが見つからないエラーの原因
Laravelは基本はテーブル名は複数形、モデル名は単数形で作成します。
テーブルとモデルをバラバラに作成した場合には、モデル名から、連携するテーブル名を推測してくれます。
Laravel側としては、テーブル名が複数形であると思っています。
そのため、テーブル名が単数形だと混乱してしまうようです…
ララベルを困らせないように、テーブルとモデルをバラバラに作成するときには、単数・複数形に注意していきましょー^^;