Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider”

Posted

技术标签:

【中文标题】Laravel 5 未找到类“Illuminate\\Html\\HtmlServiceProvider”【英文标题】:Class 'Illuminate\Html\HtmlServiceProvider' not found Laravel 5Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider” 【发布时间】:2015-04-16 22:36:08 【问题描述】:

我正在尝试使用 Laravel 5 添加 htmlServiceProvider。

我不断收到以下错误:

compiled.php 第 6391 行中的 FatalErrorException: 找不到类“Illuminate\Html\HtmlServiceProvider”

这就是我的提供者的样子:

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */
    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    'Illuminate\Bus\BusServiceProvider',
    'Illuminate\Cache\CacheServiceProvider',
    'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'Illuminate\Routing\ControllerServiceProvider',
    'Illuminate\Cookie\CookieServiceProvider',
    'Illuminate\Database\DatabaseServiceProvider',
    'Illuminate\Encryption\EncryptionServiceProvider',
    'Illuminate\Filesystem\FilesystemServiceProvider',
    'Illuminate\Foundation\Providers\FoundationServiceProvider',
    'Illuminate\Hashing\HashServiceProvider',
    'Illuminate\Mail\MailServiceProvider',
    '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',
    'Illuminate\Html\HtmlServiceProvider',

    /*
     * Application Service Providers...
     */
    'App\Providers\AppServiceProvider',
    'App\Providers\BusServiceProvider',
    'App\Providers\ConfigServiceProvider',
    'App\Providers\EventServiceProvider',
    'App\Providers\RouteServiceProvider',

],

这就是我的别名在 ik app.php 中的样子:

'aliases' => [

    'App'       => 'Illuminate\Support\Facades\App',
    'Artisan'   => 'Illuminate\Support\Facades\Artisan',
    'Auth'      => 'Illuminate\Support\Facades\Auth',
    'Blade'     => 'Illuminate\Support\Facades\Blade',
    'Bus'       => 'Illuminate\Support\Facades\Bus',
    'Cache'     => 'Illuminate\Support\Facades\Cache',
    'Config'    => 'Illuminate\Support\Facades\Config',
    'Cookie'    => 'Illuminate\Support\Facades\Cookie',
    'Crypt'     => 'Illuminate\Support\Facades\Crypt',
    'DB'        => 'Illuminate\Support\Facades\DB',
    'Eloquent'  => 'Illuminate\Database\Eloquent\Model',
    'Event'     => 'Illuminate\Support\Facades\Event',
    'File'      => 'Illuminate\Support\Facades\File',
    'Hash'      => 'Illuminate\Support\Facades\Hash',
    'Input'     => 'Illuminate\Support\Facades\Input',
    'Inspiring' => 'Illuminate\Foundation\Inspiring',
    'Lang'      => 'Illuminate\Support\Facades\Lang',
    'Log'       => 'Illuminate\Support\Facades\Log',
    'Mail'      => 'Illuminate\Support\Facades\Mail',
    'Password'  => 'Illuminate\Support\Facades\Password',
    'Queue'     => 'Illuminate\Support\Facades\Queue',
    'Redirect'  => 'Illuminate\Support\Facades\Redirect',
    'Redis'     => 'Illuminate\Support\Facades\Redis',
    'Request'   => 'Illuminate\Support\Facades\Request',
    'Response'  => 'Illuminate\Support\Facades\Response',
    'Route'     => 'Illuminate\Support\Facades\Route',
    'Schema'    => 'Illuminate\Support\Facades\Schema',
    'Session'   => 'Illuminate\Support\Facades\Session',
    'Storage'   => 'Illuminate\Support\Facades\Storage',
    'URL'       => 'Illuminate\Support\Facades\URL',
    'Validator' => 'Illuminate\Support\Facades\Validator',
    'View'      => 'Illuminate\Support\Facades\View',
    'Form'      => 'Illuminate\Html\FormFacade',
    'Html'      => 'Illuminate\Html\HtmlFacade',

],

最后我在 composer.json 中添加了这个

"require": 
    "laravel/framework": "5.0.*",
    "illuminate/html": "~5.0"
,

不知怎的,我一直收到这个错误,所以我希望有人能帮我解决这个问题:)

提前致谢!

【问题讨论】:

在将composer update 添加到您的composer.json 后,您运行了吗? 感谢您的评论,我仔细检查了它,我一直在家园内的错误项目文件夹中进行作曲家更新!现在开始工作了:) illuminate/html 已弃用 laravel-news.com/2015/02/… 这在自动化部署方面是个大问题,有人有解决方案吗? @surfer190 不,不是。部署应该使用composer install 而不是composer update 来安装composer.lock 中指定的确切版本。没有 pre-install-cmd 脚本,所以install 不会尝试加载配置文件。现在在这种特定情况下,包名称/命名空间已更改,应该在部署之前捕获... 【参考方案1】:

您可以点击下面的 Laravel 文档链接,在那里您可以找到所有版本或 Laravel 的解决方案,即 5.0、5.1、5.2、5.3

https://laravelcollective.com/docs/5.3/html

【讨论】:

【参考方案2】:

Illuminate/HTML 包已被弃用

使用:laravelcollective/html

https://***.com/a/34991188/3327198

composer require laravelcollective/html

在 config/app.php 中添加这一行

在提供者组中:

Collective\Html\HtmlServiceProvider::class,

在别名组中:

'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,

【讨论】:

【参考方案3】:

首先将这一行添加到 composer.json

"illuminate/html": "~5.0"

然后做一个composer update 等待更新完成,然后打开 config/app.php 添加:

'Illuminate\Html\HtmlServiceProvider', 

providers 数组和这个:

'Form'      => 'Illuminate\Html\FormFacade',
'Html'      => 'Illuminate\Html\HtmlFacade',

aliases 数组,并确保在刀片中使用 Html 或在任何地方使用小写“Html”而不是 HTML

这是一个参考链接:http://thegeekyland.blogspot.com/2015/11/class-illuminatehtmlhtmlserviceprovider.html

【讨论】:

请注意,正如这个答案所说,您首先添加composer.json 行,然后进行更新,然后将这些行添加到app.php。你不能把这两个步骤结合起来让它发挥作用。 请注意 laravelcollective/html 包的答案,因为现在 Illuminate 已经过时了。【参考方案4】:

你也可以这样使用Illuminate\Html\HtmlServiceProvider::class,

'Form'      => Illuminate\Html\FormFacade::class,
'Html'      => Illuminate\Html\HtmlFacade::class,

【讨论】:

那是什么意思,把::class加到最后?我注意到 Laravel 过去六个月的变化。 返回类名。如果你使用这个类名将不再被硬编码。【参考方案5】:

在 cmd 中运行

php artisan  Illuminate\Html 

然后在app.php中添加变量

【讨论】:

【参考方案6】:

在更新作曲家时仔细检查您是否在正确的目录中

【讨论】:

这真的很傻,但那是我的问题:-P 我无法想象这样的事情会发生在我身上:)【参考方案7】:

要使用 laravel html 帮助器,您需要在 composer.json 文件中要求依赖项并使用命名空间。有关完整过程,请关注我的博客。 http://www.kingpabel.com/laravel-html-helper/

【讨论】:

【参考方案8】:

Illuminate\Html\HtmlServiceProvider 不再是核心元素。已从核心框架中删除的 Laravel 组件可在 laravelcollective.com 上找到,您可以在此处找到您的 html 和表单组件:

http://laravelcollective.com/docs/5.0/html

将此添加到您的 composer.json 中:

"laravelcollective/html": "~5.0"

然后更新作曲家:

composer update

然后在 config/app.php 中添加提供者

'Collective\Html\HtmlServiceProvider',

最后在同一个文件中添加两个别名:

'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',

【讨论】:

【参考方案9】:

我发现这个问题的另一个原因:

在 ../Vendor 目录中有时有一个名为“config.php”的文件,要么完全删除该文件,要么在其中找到类似的东西 这一行:

array (
  ...
  28 => 'Illuminate\Html\HtmlServiceProvider',
  ...
),

,然后删除该行,然后执行“composer update”命令,这会有所帮助。 (它也帮助了我)。

【讨论】:

我不敢相信我是第一个投票赞成这个答案的人。就我而言,我已经从 Illuminate 切换到 LaravelCollective 版本,但在部署到我的测试环境时仍然遇到问题。解决方案是 rm boostrap/cache/*,它只是删除了 config.php 和 services.json。出于某种原因,即使我删除了对旧版本的所有引用并成功运行 composer update,artisan clear-compiled 仍然失败。在 boostrap/cache 两个文件中删除这两个文件解决了这个问题。 他们对这个答案不感兴趣,因为 Illuminate\Html 已从核心 Laravel 中删除。感谢您的投票。【参考方案10】:

尝试以下步骤 编辑项目的 composer.json 文件。

"require": 
"laravelcollective/html": "~5.0"

接下来,从终端更新 Composer:

作曲家更新

接下来,将你的新提供者添加到 config/app.php 的 providers 数组中:

'提供者' => [ // ... '集体\Html\HtmlServiceProvider', // ... ],

最后在config/app.php的aliases数组中添加两个类别名:

'aliases' => [
// ...
  'Form' => 'Collective\Html\FormFacade',
  'Html' => 'Collective\Html\HtmlFacade',
// ...

],

【讨论】:

这是一个很好的答案,我认为您应该对上面的正确答案进行评分,而不是像 Arlind 那样尝试自己的答案。【参考方案11】:

该错误表明它找不到服务提供商,因此请确保您进行了作曲家更新。如果您确实进行了作曲家更新,请检查您的供应商文件夹以确保它已拉入依赖项。

【讨论】:

以上是关于Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider”的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 未找到“Illuminate\Foundation\Application”类

未找到 Laravel 5 类“表单”

类 Illuminate\Support\Facades\RateLimiter 未找到

未找到Laravel PDO类

Laravel 5:调用未定义的方法 Illuminate\Database\Eloquent\Collection::exists()

未定义的属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$status。 Laravel 5.5 关系