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

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

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

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

请帮忙。

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

4

1 回答 1

4

显然,LaravelIlluminate/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到您providersconfig/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/

于 2016-11-12T12:06:33.903 回答