未找到“Yajra \ DataTables \ DatatablesServiceProvider”类

时间:2017-10-13 08:04:28

标签: laravel yajra-datatable

我在我的本地计算机上开发了Laravel Project。 我使用Yajra Pakagebox在其上使用bootstrap数据表。

像这样: 作曲家需要yajra / laravel-datatables-oracle php artisan供应商:发布

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

(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)

重要的是我无法在Hosting Server上执行任何命令,因为它是Shared Hosting Server。 我看到许多文章解决了这个问题,但他们都使用“artisan”和“composer”命令。 但我完全不能使用这个命令。 我只能通过FTP将源代码上传到服务器。

10 个答案:

答案 0 :(得分:4)

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

var jsonParams = JSON.stringify(params);

$.ajax({
    type: "POST",
    url: "{{ route('paramUpdate', $aquarium->id) }}",
    data: { parameters: jsonParams },
    success: function(response) {
        console.log(response);
    },
    error: function() {
        console.log("Ajax error");
    }
});

在使用版本8之前:

Yajra\DataTables\DataTablesServiceProvider

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

答案 1 :(得分:1)

适用于v@8.3

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

答案 2 :(得分:0)

请运行以下命令并尝试:

composer update
composer dump-autoload

php artisan config:cache
php artisan cache:clear

答案 3 :(得分:0)

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

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

答案 4 :(得分: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

答案 5 :(得分:0)

使用插件和按钮插件重新安装,现在它正在运行。 作曲家需要yajra / laravel-datatables-buttons:^ 3.0

答案 6 :(得分:0)

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

改变它
'Datatables' => Yajra\Datatables\Facades\Datatables::class

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

答案 7 :(得分:0)

replace Datatables with DataTables

答案 8 :(得分:0)

在项目的文件夹中

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]

答案 9 :(得分:0)

不起作用的原因是:

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

别忘了跑

const regex = /\/(?:.*?(\d{1,2}\w{3}\d{0,4}))\/.*?$/;

const [, date] = regex.exec("https://www.example.com/exampletitle21sep9oct2020/index.html");
console.log({ date });
console.log(regex.exec("https://www.example.com/exampletitle21sep9oct/index.html")[1])

之后。