Laravel ERROR:Class' Collective \ Html \ HtmlServiceProvider'运行作曲家后找不到需要在CMD中使用laravelcollective / html

时间:2016-11-12 11:00:13

标签: php laravel laravel-5.3 laravel-form

注意:到目前为止,this thread的答案对我没有帮助。并且,我认为超过4个小时的非生产性搜索解决方案最终验证了我要求进一步的帮助...

我正在关注this tutorial以便在我的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:   Class' Collective \ Html \ HtmlServiceProvider'找不到

我甚至将此添加到 my composer.json ,以防万一这可能是"缺少的成分":

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

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

请注意我找到了两个composer.json文件:一个在...

  

C:\ XAMPP \ htdocs中\ laravelproject

和另一个内部...

  

C:\ XAMPP \ htdocs中\ laravelproject \项目

...所以我编辑了两个。

旁注:"项目"文件夹是"原创"可以找到根文件(例如文件夹应用程序,配置,资源等等。我之前已将其重新定位,以便从我的网址中删除单词" public"

PS:我是Laravel,Composer和CMD的新手。我唯一的背景是PHP和CodeIgniter。

请帮忙。

在运行 composer require" laravelcollective / html":" ^ 5.3.0" (因为它的长度为142行),但我有一份副本,以防万一。

1 个答案:

答案 0 :(得分: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。看看是否抛出任何错误。
  7. 您可能已经完成了所有这些步骤。如果是这种情况,只需使用composer remove laravelcollective/html命令删除包,然后重新执行所有步骤。

    最重要的是,了解项目文件所在的位置。摆脱额外的project/