【问题标题】:no php artisan commands are working after new migration新迁移后没有 php artisan 命令正在工作
【发布时间】:2020-05-21 19:15:49
【问题描述】:

我是 laravel 的新手。 在 laracast 上的教程视频之后,我做了一个新的迁移(cmd 命令),如下所示

php artisan make:migration delete_title_from_posts_table

它给了我信息

Created Migration: 2020_02_05_185721_delete_title_from_posts_table

之后,没有 php artisian 命令在 cmd 中运行。

我运行的任何命令都会出现以下错误

In Container.php line 805:

  Target class [db] does not exist.


In Container.php line 803:

  Class db does not exist

这是什么原因造成的? 我在 Win10 64 位上的 laravel 应用程序版本=6.2 和 php 版本=7.3.5。

我已经查看过的类似问题,不适合我
artisan-commands-not-working-after-composer-update
in-container-php-line-805-target-class-db-does-not-exist

【问题讨论】:

  • 如果运行 -> composer dump-autoload composer update
  • 已经尝试过这个,它给出了同样的错误,但有额外的响应----Script @php artisan package:discover --ansi 处理返回的自动加载转储后事件,错误代码为 1--- -

标签: laravel migration


【解决方案1】:

因为它是一个门面,所以将它添加到类的顶部以使其工作:

use DB;

或者使用完整的命名空间:

$tables = \DB::table...

【讨论】:

  • 在哪个文件中?我也使用雄辩的模型而不是查询构建器
  • 当你使用DB库但没有在顶部声明时会出现这个错误
  • 你必须尝试 composer dump-autoload 可能是它的缓存问题
  • 已经从我在帖子中提到的类似答案中尝试过
【解决方案2】:

逐步运行这些命令:

  • composer dump-autoload清理所有编译文件及其路径
  • composer update --no-scripts 跳过在composer.json 中定义的脚本的执行
  • composer update 更新项目的依赖项

【讨论】:

  • 我已经尝试过这个解决方案,这给了我同样的错误,但附加消息 ''> Illuminate\Foundation\ComposerScripts::postAutoloadDump Script @php artisan package:discover --ansi 处理后自动加载转储事件返回错误代码 1
猜你喜欢
  • 2018-06-07
  • 2019-01-28
  • 2017-09-27
  • 2017-04-02
  • 2017-10-12
  • 2017-06-13
  • 2016-03-13
  • 2016-06-21
  • 1970-01-01
相关资源
最近更新 更多