Laravel 错误:在 CMD 中运行 Composer require laravelcollective/html 后找不到类“Collective\Html\HtmlServiceProvider”

问题描述 投票:0回答:2

注意: 到目前为止,此线程没有任何答案对我有帮助。而且,我认为超过 4 个小时徒劳地寻找解决方案最终证明我需要寻求进一步的帮助......

我遵循 本教程 是为了在我的 Laravel 项目中使用表单,并允许我在数据库中保存一些用户输入。按照指示,我通过 CMD 执行了这一行:

composer require "laravelcollective/html":"^5.3.0"

然后,我将这些添加到 config/app.php:

'providers' => [
// ...
  Collective\Html\HtmlServiceProvider::class,
// ...
],

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

在我的视图中,我有这个,只是为了检查一切现在是否准备好使用:

{!! Form::open([]) !!}
{!! Form::text('name', @$name) !!}
{!! Form::password('password') !!}
{!! Form::submit('Send') !!}
{!! Form::close() !!}

但是,它给了我这个错误:

ProviderRepository.php 第 146 行中的 FatalThrowableError: 未找到“Collective\Html\HtmlServiceProvider”类

我什至将其添加到我的composer.json中,以防万一这可能是“缺少的成分”:

"require": {
    "laravel/framework": "5.0.*",
    "laravelcollective/html": "~5.0"
}

但是也没有解决任何问题。

另请注意,我发现了两个composer.json 文件:其中一个......

C:\xampp\htdocs\laravelproject

还有一个里面...

C:\xampp\htdocs\laravelproject\project

...所以我都编辑了。

旁注:“项目”文件夹是可以找到“原始”根文件的位置(例如文件夹应用程序、配置、资源等。我之前已重新定位它们,以便从其中删除“公共”一词)我的网址。

PS: 我对 Laravel、Composer 和 CMD 都很陌生。我唯一的背景是 PHP 和 CodeIgniter。

请帮忙。

我不确定运行后是否应该在此处提供 CMD 结果 composer require "laravelcollective/html":"^5.3.0" (因为它有 142 行长),但我有一份副本,以防万一。

php laravel laravel-5.3 laravel-form
2个回答
4
投票

显然,Laravel 的

Illuminate/Foundation/ProviderRepository.php
正在抱怨未找到的提供程序:

138     /**
139      * Create a new provider instance.
140      *
141      * @param  string  $provider
142      * @return \Illuminate\Support\ServiceProvider
143      */
144     public function createProvider($provider)
145     {
146         return new $provider($this->app);
147     }

我刚刚在全新安装的 Laravel 5.3 上成功测试了它。请遵循此清单:

  1. 问题
    composer require "laravelcollective/html":"^5.3.0"
  2. 验证
    vendor/laravelcollective/html
    目录是否存在。
  3. 验证您的
    composer.json
    文件已更新,并且依赖项(
    laravelcollective/html
    块)中有
    require
    包的条目。
  4. Collective\Html\HtmlServiceProvider::class
    添加到
    providers
    config/app.php
    数组中。
  5. 'Form' => Collective\Html\FormFacade::class
    'Html' => Collective\Html\HtmlFacade::class
    添加到
    aliases
    数组中。
  6. 确认 API 存在:发出
    php artisan tinker
    命令并尝试使用
    Form::
    API。查看是否抛出任何错误。

您可能已经完成了所有这些步骤。如果是这种情况,只需使用

composer remove laravelcollective/html
命令删除该包,然后重新执行所有步骤即可。

最重要的是,了解项目文件所在的位置。摆脱多余的

project/


0
投票

Laravel 10.x

laravelcollective/html
已被废弃,您应该避免使用它。 使用

composer require spatie/laravel-html
© www.soinside.com 2019 - 2024. All rights reserved.