5

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

像这样: 作曲家需要 yajra/laravel-datatables-oracle php artisan vendor:publish

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

(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 将源代码上传到服务器。

4

10 回答 10

8

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

Yajra\DataTables\DataTablesServiceProvider

在版本 8 之前使用:

Yajra\Datatables\DatatablesServiceProvider

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

于 2018-03-22T20:05:34.593 回答
7

请运行以下命令并尝试:

composer update
composer dump-autoload

php artisan config:cache
php artisan cache:clear
于 2017-10-13T08:09:01.567 回答
3

它适用于 v@8.3

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

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

于 2018-01-18T06:07:45.283 回答
2

替换DatatablesDataTables

于 2018-03-25T20:52:38.167 回答
1

在项目的文件夹中

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]

于 2020-07-06T17:44:58.187 回答
1

它不工作的原因是:

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

别忘了跑

php artisan vendor:publish

在那之后。

于 2020-10-20T11:42:28.207 回答
0

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

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

'Datatables' => Yajra\Datatables\DatatablesServiceProvider::class
于 2018-03-04T10:48:10.893 回答
0

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

于 2018-01-31T14:18:54.237 回答
0

您知道要更改为 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
于 2017-10-13T09:39:17.480 回答
0

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

  1. 使用 composer show 检查您正在使用的软件包版本。
  2. 删除 bootstrap/cache 文件夹下的所有文件
  3. 删除供应商文件夹并使用 composer install 重新安装所有软件包。
于 2017-10-13T09:32:32.223 回答