Help us understand the problem. What is going on with this article?

【Laravel】migrate:resetとかmigrate:rollback時に「Class 'なんたらテーブル' not found」する場合の対処

More than 3 years have passed since last update.

概要

マイグレーションファイル作成した。
試しにマイグレーションするぞ!

$ php artisan migrate
Migrated: テーブル名

やったー動いた!resetの方も試そう。

$ php artisan migrate:reset

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'テーブル名' not found

・・・え?

オートローディングのクラスマップにマイグレーションファイルのディレクトリを追加する

ルート/composer.josn
{
  --- 省略 ---

  "autoload": {
    "classmap": [
      "database/migrations" これを追加
    ]
  },

composer dump-autoload

いま追加したオートローディングの設定を元に「vendor/composer/autoload_classmap.php」を更新する。

$ composer dump-autoload

更新されれば「vendor/composer/autoload_classmap.php」に

'テーブル名' => $baseDir . '/database/migrations/テーブル名.php',

みたいなのが追加されるはず。これでClass not foundは解消される、はず。

$ php artisan migrate:reset
Rolled back: テーブル名

補足

オートローディングの設定の方は1度やれば良いんだけど、

$ composer dump-autoload

の方は当然マイグレーションファイルを追加するたびに必要になる。ちょっと面倒。なんかぐぐったらこれが面倒みたいなQiitaのドキュメントあった気がしたからもしかしたら良い方法があるのかもしれない。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした