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”类
类 Illuminate\Support\Facades\RateLimiter 未找到
Laravel 5:调用未定义的方法 Illuminate\Database\Eloquent\Collection::exists()
未定义的属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$status。 Laravel 5.5 关系