【问题标题】:Class 'Yajra\DataTables\DatatablesServiceProvider' not found找不到类 'Yajra\DataTables\DatatablesServiceProvider'
【发布时间】:2018-03-25 07:37:18
【问题描述】:

我在本地计算机上开发了 Laravel 项目。 我使用 Yajra Pakagebox 在其上使用引导数据表。

像这样: composer 需要 yajra/laravel-datatables-oracle php artisan vendor:发布

然后我将它们全部推送到托管服务器中,但它显示如下错误。

(1/1) FatalThrowableError
Class 'Yajra\DataTables\DatatablesServiceProvider' not found
in ProviderRepository.php (line 208)
at ProviderRepository->createProvider('Yajra\\DataTables\\DatatablesServiceProvider')
in ProviderRepository.php (line 144)
at ProviderRepository->compileManifest(array('Illuminate\\Auth\\AuthServiceProvider', 'Illuminate\\Broadcasting\\BroadcastServiceProvider', 'Illuminate\\Bus\\BusServiceProvider', 'Illuminate\\Cache\\CacheServiceProvider', 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'Illuminate\\Cookie\\CookieServiceProvider', 'Illuminate\\Database\\DatabaseServiceProvider', 'Illuminate\\Encryption\\EncryptionServiceProvider', 'Illuminate\\Filesystem\\FilesystemServiceProvider', 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider', 'Illuminate\\Hashing\\HashServiceProvider', 'Illuminate\\Mail\\MailServiceProvider', 'Illuminate\\Notifications\\NotificationServiceProvider', 'Illuminate\\Pagination\\PaginationServiceProvider', 'Illuminate\\Pipeline\\PipelineServiceProvider', 'Illuminate\\Queue\\QueueServiceProvider', 'Illuminate\\Redis\\RedisServiceProvider', 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider', 'Illuminate\\Session\\SessionServiceProvider', 'Illuminate\\Translation\\TranslationServiceProvider', 'Illuminate\\Validation\\ValidationServiceProvider', 'Illuminate\\View\\ViewServiceProvider', 'Yajra\\DataTables\\DatatablesServiceProvider', 'Laravel\\Tinker\\TinkerServiceProvider', 'App\\Providers\\AppServiceProvider', 'App\\Providers\\AuthServiceProvider', 'App\\Providers\\EventServiceProvider', 'App\\Providers\\RouteServiceProvider'))
in ProviderRepository.php (line 61)

重要的是我无法在托管服务器上执行任何命令,因为它是共享托管服务器。 我看到很多解决这个问题的文章,但它们都使用“artisan”和“composer”命令。 但是我根本不能使用这个命令。 我只能通过 FTP 将源代码上传到服务器。

【问题讨论】:

  • 您是否尝试过composer-dumpautoload,清除作曲家和框架缓存(在本地),然后重新上传到服务器?
  • 在我看来,您还没有将服务提供者添加到config/app.php 中的$providers 数组中

标签: laravel yajra-datatable


【解决方案1】:

根据您使用的 DataTables 版本,可能是简单的大小写问题。在版本 8 之后,您应该使用:

Yajra\DataTables\DataTablesServiceProvider

在版本 8 之前使用:

Yajra\Datatables\DatatablesServiceProvider

升级说明参考:https://yajrabox.com/docs/laravel-datatables/master/upgrade#namespace

【讨论】:

    【解决方案2】:

    请运行以下命令并尝试:

    composer update
    composer dump-autoload
    
    php artisan config:cache
    php artisan cache:clear
    

    【讨论】:

    • 我无法使用 SSH 访问托管服务器。
    • 我无法使用“Composer”或“Artisan”,因为我无法使用 SSH 访问托管服务器。所以我上传了所有来源。请帮助我。
    • 谢谢,我认为某些依赖项会导致此问题发生,我已运行上述所有脚本并且它可以工作! *P/S:我也删除了 vendor 文件夹。
    【解决方案3】:

    它适用于 v@8.3

    Yajra\DataTables\DataTablesServiceProvider::class,
    'Datatables' => Yajra\DataTables\Facades\DataTables::class,
    

    请将此添加到 config/app.php 文件中。 第一行位于“Package Service Providers”部分 第二行位于“类别名”部分下

    【讨论】:

      【解决方案4】:

      Datatables 替换为DataTables

      【讨论】:

        【解决方案5】:

        在项目文件夹中

        rm -R vendor/
        rm -R bootstrap/cache
        mkdir bootstrap/cache
        chmod -R 777 bootstrap/*
        

        如果你的 laravel 版本 => 5.4

        composer require yajra/laravel-datatables-oracle:"~8.0"

        如果你的 laravel 版本 => 5.8

        composer require yajra/laravel-datatables-oracle:"~9.0"

        @config/app.php
        'providers' => [
            ...,
            Yajra\DataTables\DataTablesServiceProvider::class,
        ]
        
        'aliases' => [
            ...,
            'DataTables' => Yajra\DataTables\Facades\DataTables::class,
        ]
        
        composer dumpautoload
        composer install
        

        它对我有用。

        来源:https://github.com/yajra/laravel-datatables[https://github.com/yajra/laravel-datatables][1]

        【讨论】:

        • 欢迎使用 StackOverflow,请务必将代码放入code boxes
        【解决方案6】:

        它不工作的原因是:

        您安装了库。并将其添加到 providers 数组的 config/app.php 中。

        别忘了跑

        php artisan vendor:publish
        

        在那之后。

        【讨论】:

          【解决方案7】:

          请尝试以下步骤来解决此问题:

          1. 使用 composer show 检查您使用的软件包版本。
          2. 删除 bootstrap/cache 文件夹下的所有文件
          3. 删除供应商文件夹并使用 composer install 重新安装所有包。

          【讨论】:

          • 我无法使用“Composer”或“Artisan”,因为我无法使用 SSH 访问托管服务器。所以我上传了所有来源。请帮助我
          • 在本地执行此操作并通过 ftp 上传?
          【解决方案8】:

          您知道要更改为 ftp 的所有文件(迁移配置控制器...)

          并用 ftp 替换本地文件到服务器

          /composer.json
          /composer.lock
          /bootstrap/*
          /storage/framework/cache/*
          /storage/framework/views/*
          /vendor/composer/*
          /vendor/autoload.php
          

          如果问题仍然存在,我需要转发 Laravel 的版本。 用

          测试
          php artisan --version
          Laravel Framework 5.4.19
          

          【讨论】:

          • 我不能使用像“artisan”和“composer”这样的shell命令。请帮帮我。
          • 我在本地电脑上完全上传了所有源代码。
          • @LeeDaniel 如果它在您的本地计算机上正常工作,则没有其他解决方案,如果您将此工作状态上传到服务器,则需要工作。您可以在临时控制器中使用带有 Artisan::call() 的 call artisan 命令。请参阅laravel.com/docs/5.5/…
          【解决方案9】:

          重新安装插件和按钮插件,现在它可以工作了。 作曲家需要 yajra/laravel-datatables-buttons:^3.0

          【讨论】:

            【解决方案10】:

            在您的 [config/app.php] 文件中,编辑别名数组。改成

            'Datatables' => Yajra\Datatables\Facades\Datatables::class
            

            'Datatables' => Yajra\Datatables\DatatablesServiceProvider::class
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-04-14
              • 1970-01-01
              • 1970-01-01
              • 2021-05-27
              • 2019-03-02
              • 2016-03-07
              • 1970-01-01
              • 2019-03-08
              相关资源
              最近更新 更多