BadMethodCallException 方法 Illuminate\Foundation\Application::share 不存在。Laravel 应用程序中出现错误

Leo*_*ori 6 php laravel

我已经在我的 laravel 项目上maatwebsite/excel使用命令行命令进行了安装composer require maatwebsite/excel。我已经按照指南设置了正确的别名和提供程序,但是当我运行时php artisan make:export ExportTimesheet --model=Timesheet,它会抛出错误:

BadMethodCallException 方法 Illuminate\Foundation\Application::share 不存在

这是生成错误的方法:

protected function bindClasses()
{
    // Bind the format identifier
    $this->app['excel.identifier'] = $this->app->share(function($app) {
        return new FormatIdentifier($app['files']);
    });
}
Run Code Online (Sandbox Code Playgroud)

我的提供商和别名是:

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        Maatwebsite\Excel\ExcelServiceProvider::class,

        /*
         * Package Service Providers...
         */

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

    /*
     |--------------------------------------------------------------------------
     | Class Aliases
     |--------------------------------------------------------------------------
     |
     | This array of class aliases will be registered when this application
     | is started. However, feel free to register as many as you wish as
     | the aliases are "lazy" loaded so they don't hinder performance.
     |
     */

    'aliases' => Facade::defaultAliases()->merge([
        // 'ExampleClass' => App\Example\ExampleClass::class,
        'Excel' => Maatwebsite\Excel\Facades\Excel::class,
    ])->toArray(),
Run Code Online (Sandbox Code Playgroud)

这是我的composer.json

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        Maatwebsite\Excel\ExcelServiceProvider::class,

        /*
         * Package Service Providers...
         */

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

    /*
     |--------------------------------------------------------------------------
     | Class Aliases
     |--------------------------------------------------------------------------
     |
     | This array of class aliases will be registered when this application
     | is started. However, feel free to register as many as you wish as
     | the aliases are "lazy" loaded so they don't hinder performance.
     |
     */

    'aliases' => Facade::defaultAliases()->merge([
        // 'ExampleClass' => App\Example\ExampleClass::class,
        'Excel' => Maatwebsite\Excel\Facades\Excel::class,
    ])->toArray(),
Run Code Online (Sandbox Code Playgroud)

Anj*_*chu 18

我正在使用 laravel 9 。运行以下步骤后,一切似乎都很好。

  1. 转到composer.json
  2. 更新“maatwebsite/excel”:“3.1.48”,
  3. 运行作曲家更新
  4. 转到配置->app.php
  5. 添加到提供程序 Maatwebsite\Excel\ExcelServiceProvider::class,
  6. 添加到别名 'Excel' =>Maatwebsite\Excel\Facades\Excel::class,
  7. 运行 Composer dump-autoload


may*_*aac 4

该错误是由于 xampp / wamp 服务器中默认未启用 gd 和 zip 扩展名引起的。要解决此问题... 1 打开您的 php ini 文件 2. 转到 gd 扩展名并删除 ; 在 gd entension 之前,同样的 zip-extension 3. 再次保存文件 4. 重新启动服务器 5. 然后再次重新安装软件包:composer require maatwebsite/excel

  • 它应该有效,因为当我遇到这个错误时,这也是我能够解决我的问题的方法。