使用Laravel 8.75并尝试在composer.json中升级到php 8.1到“php”:“^8.1”并收到Illuminate\Contracts\Container\BindingResolutionException错误-目标类[CommandMakeCommand]不存在。
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Package swiftmailer/swiftmailer is abandoned, you should avoid using it.
Use symfony/mailer instead.
Generating optimized autoload files
Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover --ansi
Illuminate\Contracts\Container\BindingResolutionException
Target class [CommandMakeCommand] does not exist.
at
供应商/laravel/框架/src/照明/容器/容器。php:879
875▕
876▕ try {
877▕ $reflector = new ReflectionClass($concrete);
878▕ } catch (ReflectionException $e) {
879▕ throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
880▕ }
881▕
882▕ // If the type is not instantiable, the developer is attempting to resolve
883▕ // an abstract type such as an Interface or Abstract Class and there is
+13 vendor frames
14 artisan:37
Illuminate\Foundation\Console\Kernel::handle()
Script @php artisan package:discover --ansi handling the post-autoload-
dump event returned with error code 1
9条答案
按热度按时间rekjcdws1#
我也有同样的问题,在我的情况下nwidart/laravel模块包升级到8.3版本,我降级到8.2版本和问题解决
qnyhuwrf2#
参见此处:https://docs.laravelmodules.com/v9/introduction
如果您有一个现有的配置文件,并且收到一个错误:
Target class [CommandMakeCommand] does not exist
然后配置文件将需要更新,首先导入命令类:
use Nwidart\Modules\Commands;
接下来将命令数组替换为:
gtlvzcf83#
只需添加以下行:
在
config/modules.php
文件第一个中作为namespace
上述命名空间将仅解决commandMakeCommand问题,但如果您想设置所有命令命名空间,则需要在顶部添加命名空间。
ux6nzvsh4#
希望这对您有所帮助(请先备份您的项目):
1.首先通过运行以下命令删除nwidart/laravel模块:
composer remove nwidart/laravel-modules
1.然后删除
config/modules.php
。1.通过运行以下命令重新安装nwidart/laravel模块:
composer require nwidart/laravel-modules
来源:Githubhot, the answer by mohamedsharaf
x6h2sr285#
如果有人仍在寻找答案,请按照以下步骤操作
如在此链接中提到的,请参见此处:https://docs.laravelmodules.com/v9/introduction
如果您有一个现有的配置文件,并且收到一个错误:
然后,配置文件需要更新,首先导入commands类,然后在配置文件夹中更新
modules.php
文件,包括然后将命令数组替换为:在每个值之前添加
Commands\
或简单复制并替换数组5tmbdcev6#
您可以尝试降级composer.json文件中的nwidart/laravel-modules版本。只需将此行更改为下面的行。
然后删除composer.lock文件,现在运行此命令。
lh80um4z7#
在config/modules中,添加命令Nwidart\Modules\Commands名称完整路径
'命令' =〉[ Nwidart\模块\命令\命令生成命令::类...],
vfwfrxfs8#
如果以前的答复不为您工作,如果在
composer.json
中更改版本以及删除composer.lock
和供应商后仍然不工作,您可以像这样修复版本“nwidart/laravel模块”:“第8.2条 *”
删除 composer .锁定和供应商并运行
qyzbxkaa9#
这不是相关的路线或您的应用程序的任何其他部分,当您无法运行Composer更新或Artisan命令时,您在引导Laravel时遇到问题,在这种情况下:去你的配置文件夹打开模块文件并检查“命令”键我的问题通过这种方式修复!日安!