在laravel中创建迁移时出错:'无法打开流'

Awa*_*ine 32 migration laravel-5

create_users_migration使用以下命令创建了第一个迁移:

php artisan make:migration create_users_table
Run Code Online (Sandbox Code Playgroud)

我后来意识到有一个错误,因此删除了迁移文件,并决定使用上面相同的命令创建不同的迁移文件.但它不断抛出这个例外:

[ErrorException]
include(/ home/awa/Desktop/intern/train2/vendor/composer /../../ database/migr ations
/2014_10_12_000000_create_users_table.php):无法打开流:没有
这样的文件或目录

我究竟做错了什么?

Ale*_*ide 73

我定期收到此错误,以下是一些可能有用的内容:

php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)

或者在bootstrap目录中手动删除缓存(它负责路由和服务缓存.

这些方法也可以帮助:

composer dump-autoload -o
composer update
Run Code Online (Sandbox Code Playgroud)

Composer dump-autoload重新生成需要包含在项目中的所有类的列表(autoload_classmap.php).

-o/--optimize选项转换PSR-4/PSR-0的规则进入类映射规则,其结果是自动加载磁带机并不需要访问文件系统,使其运行速度更快-这也往往是因为Laravel问题的根源自动加载器使用此优化(缓存).

回滚迁移有助于多次解决问题(如果迁移成功):

php artisan migrate:rollback
Run Code Online (Sandbox Code Playgroud)

  • 我只需要做:composer dump-autoload (11认同)
  • `composer dump-autoload -o`就是我需要运行的全部内容.谢谢. (3认同)
  • 在寻找了一段时间后,这极大地帮助了您。但是他们为什么决定决定将迁移插入作曲家“ autoload_classmap”中?这对我来说意义不大,因为它们几乎是一次性文件,不应随通常的请求一起加载。 (2认同)

小智 15

我收到了这个错误,我找到了社区的解决方案:

php artisan cache:清楚

这将删除缓存的文件

composer dump-autoload

composer dump-autoload将为您的项目agian重新生成优化的自动加载文件

php artisan migrate:刷新

然后为您的数据库创建一个新的全新迁移

php artisan make:migration create_users_table --create = users

最后让我们开始制作新的迁移文件


小智 7

然后,您可能需要运行 composer dump-autoload