artisan migrate:reset
を実行しました。composer dump-autoload
に続いてartisan dump-autoload
を実行しましたartisan migrate
を実行しましたが、このエラーが引き続き発生します。
PHP致命的エラー:クラス 'Foo'が/vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.phpで297行目に見つかりません
やってみました:
composer dump-autoload
とartisan dump-autoload
を再度実行します(artisan clear-compiled
も使用)artisan migrate:install
を実行しますcomposer install
を実行しますクラスFooのPHPStormでプロジェクト内を検索します。何も見つかりませんでした。
同じエラーが引き続き発生します。それが関連する可能性がある場合、4.2に更新して以来、これを実行するのは初めてです。私が探している他の何か?
私は私の問題を解決しました
composer dump-autoload
php artisan migrate
なぜそれが機能したのかはわかりませんが、過去にこれらの問題のある移行のクラス名を変更した可能性があります。
また、移行の名前を初期名(致命的なエラーでスローされた名前)に変更すると、一部の移行でも機能することがわかりました。
私もこの問題を抱えていました。覚えておく必要があります:クラス名はファイル名に従っている必要があります。単純なファイル名の変更は私を助けました:)
たとえば、ファイル「2014_12_08_100923_create_items_tables.php」では、キャメルケースの単語を使用した「CreateItemsTables」という名前のクラスである必要があります。
私もこれに遭遇し、解決策は上記のすべてとは異なりました。失敗した理由は、ファイル名がまだDBの移行テーブルに記載されていたためです。一意の列がなかったため、PHPMyAdminで削除できず、CLIルートを取得する必要がありました。
ルートとしてサーバーにログインします。次を入力します。
mysql -p database_name
(現在、パスワードの入力を求められます。ここから先は、すべてがmysql>で始まります。これは、単にMysql環境にいることを意味します。
select * from migrations;
削除した移行ファイルを探して、名前をコピーします。
delete from migrations where migration = '2015_07_21_000119_create_some_table';
影響を受ける1行について何かを言及する必要があります。最初のコマンドをもう一度入力して、消えたことを確認します。
select * from migrations;
入力してMysql環境を終了した場合
exit;
ここで、「php artisan migrate:rollback」をもう一度試してみてください。これは魅力的です:-)
もっと簡単な方法があります。
artisan make:migration
artisan migrate:reset
ロールバックするartisan migrate:refresh
これは少し過去のことですが、実際にはもっと良い方法があります。ターミナルで次のコマンドを実行し、自由に削除してください:
~$ php artisan clear-compiled;php artisan cache:clear;php artisan config:clear;php artisan debugbar:clear;php artisan view:clear;php artisan optimize
通常のタスクを実行するには、artisan-clearという名前の実行可能ファイルを作成します。
#!/bin/bash
php artisan clear-compiled
php artisan cache:clear
php artisan config:clear
php artisan debugbar:clear
php artisan view:clear
php artisan optimize
実際の解決策は、翻訳に正しい命名を使用することです。あなたはまだする必要があるかもしれません
composer dump-autoload
移行ファイルは次のようにする必要がありますYYYY_MM_DD_000000_create_some_table.php
および内部のクラス名は
class CreateSomeTable extends Migration{}
バージョン5.1.3の同じ問題が私を修正します:
出力:No migrations found.
OK
出力は次のとおりです。
Migrated: 2016_11_24_093015_dt_some_table
Migrated: 2016_12_05_141004_dt_some_table
Migrated: 2016_12_07_110518_dt_some_table
Migrated: 2016_12_08_141807_dt_some_table
Migrated: 2016_12_13_090832_dt_some_table
この問題は解決されました
私にとっての解決策は、移行中のクラス名がなんとなく小文字で始まったことでした。クラス名をすべて大文字に変更したら、composer dump-autoload
、それは私のために働いてしまいました。これはLaravel 5.1を使用しています。
私はこれが好きでした:1。データベースからの移行テーブルから行が存在しない移行を削除しました2.そしてコマンドを実行します
これは私の問題を解決するのに役立ちました。
*すべてのデータはデータベーステーブルから削除されます
職人がまったく機能せず、コマンドを実行してもこのメッセージが表示される場合は、config.php
ファイルbootstrap/cache
フォルダー。
再度実行した後
php artisan config:cache
同じ問題がありました。 _php artisan migrate:reset
_をヒットしていたとき、_Class 'CreateImagesTable' not found
_を取得しました。そして_composer dump-autoload
_は助けになりませんでした。
私の解決策は非常に簡単でした:
php artisan make:migration create_images_table --create=images
_composer dump-autoload
_SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
php artisan migrate:reset
_