【问题标题】:Facade does not implement getFacadeAccessor methodFacade 没有实现 getFacadeAccessor 方法
【发布时间】:2023-01-07 04:45:39
【问题描述】:

我在尝试将 laravel 9 降级到 8 后收到此错误消息,因为我最近将我的 php 版本从 8 降级到 7.3

In Facade.php line 178:
                                                   
Facade does not implement getFacadeAccessor method.  
                                                   

Script @php artisan package:discover --ansi handling the post-autoload-dump even
returned with error code 1

【问题讨论】:

  • 你有没有实施你的getFacadeAccessor门面类中的方法?因为当你没有在自己的门面类中实现这个方法时会出现这个错误
  • 我不知道 Facade.php 文件在哪里,好像找不到
  • 我找到了 Facade.php 但我该如何实现它
  • 如果你检查this part in the laravel document,你可以看到自己的外观类实现的示例。当你扩展 Facade 类时,你必须实现getFacadeAccessor在役集装箱的使用方法
  • 从 Laravel 8 迁移到 9 后部署项目时出现此错误,而我的本地版本非常好。没有任何帮助,所以我在我的服务器上重置了项目状态,错误消失了。

标签: php laravel


【解决方案1】:

config/app.php替换

 'aliases' => Facade::defaultAliases()->merge([ ])->toArray(),

和:


'aliases' => [

        'App' => IlluminateSupportFacadesApp::class,
        'Arr' => IlluminateSupportArr::class,
        'Artisan' => IlluminateSupportFacadesArtisan::class,
        'Auth' => IlluminateSupportFacadesAuth::class,
        'Blade' => IlluminateSupportFacadesBlade::class,
        'Broadcast' => IlluminateSupportFacadesBroadcast::class,
        'Bus' => IlluminateSupportFacadesBus::class,
        'Cache' => IlluminateSupportFacadesCache::class,
        'Config' => IlluminateSupportFacadesConfig::class,
        'Cookie' => IlluminateSupportFacadesCookie::class,
        'Crypt' => IlluminateSupportFacadesCrypt::class,
        'Date' => IlluminateSupportFacadesDate::class,
        'DB' => IlluminateSupportFacadesDB::class,
        'Eloquent' => IlluminateDatabaseEloquentModel::class,
        'Event' => IlluminateSupportFacadesEvent::class,
        'File' => IlluminateSupportFacadesFile::class,
        'Gate' => IlluminateSupportFacadesGate::class,
        'Hash' => IlluminateSupportFacadesHash::class,
        'Http' => IlluminateSupportFacadesHttp::class,
        'Js' => IlluminateSupportJs::class,
        'Lang' => IlluminateSupportFacadesLang::class,
        'Log' => IlluminateSupportFacadesLog::class,
        'Mail' => IlluminateSupportFacadesMail::class,
        'Notification' => IlluminateSupportFacadesNotification::class,
        'Password' => IlluminateSupportFacadesPassword::class,
        'Queue' => IlluminateSupportFacadesQueue::class,
        'RateLimiter' => IlluminateSupportFacadesRateLimiter::class,
        'Redirect' => IlluminateSupportFacadesRedirect::class,
        // 'Redis' => IlluminateSupportFacadesRedis::class,
        'Request' => IlluminateSupportFacadesRequest::class,
        'Response' => IlluminateSupportFacadesResponse::class,
        'Route' => IlluminateSupportFacadesRoute::class,
        'Schema' => IlluminateSupportFacadesSchema::class,
        'Session' => IlluminateSupportFacadesSession::class,
        'Storage' => IlluminateSupportFacadesStorage::class,
        'Str' => IlluminateSupportStr::class,
        'URL' => IlluminateSupportFacadesURL::class,
        'Validator' => IlluminateSupportFacadesValidator::class,
        'View' => IlluminateSupportFacadesView::class,
    ],

【讨论】:

  • 我将 php 从 8.0 降级到 7.4,这解决了我的问题。谢谢
【解决方案2】:

在我的例子中,错误开始出现,在运行 Laravel Shift 从 8.x 升级到 9.x 之后,我执行了 composer install 而不是 composer update

然后,我删除了供应商文件夹并运行composer update

现在一切都很好。

【讨论】:

  • 在从 8.x 转移到 9.x 之后也得到了这个,但在我的情况下,重命名供应商文件夹和作曲家更新不起作用。我必须遵循将别名合并替换为实际别名的建议。我也有 Laravel Nova,所以 composer update 有很多其他问题。
【解决方案3】:

运行 Laravel Shift 后对我来说也是如此。 您可能依赖于使用旧版本的 illuminate/support。

你必须使用照亮/支持版本 >= 9

只需在 composer.json 中添加或更新这一行:

"illuminate/support": "^9.46",

【讨论】:

    【解决方案4】:

    那是因为你忘了跑步

    php artisan ui vue --auth

    在 composer 之后需要 laravel/ui

    【讨论】:

    • 您的答案可以通过其他支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写出好的答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多