找不到Laravel 5 Class'form'


71

我在composer.json中添加了“ illuminate / html”:“ 5. *”并运行了“ composer update”。

  - Installing illuminate/html (v5.0.0)
    Loading from cache

我在网站的根目录中运行了此命令。我在/root/.composer ...和项目的根目录中修改了composer.json文件,但两者都没有改变。

这下载了该类,并且似乎已安装。我在文件config / app.php中添加了以下内容。

    'Illuminate\Html\HtmlServiceProvider',

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

我认为我有什么错,但是我不知道如何解决。我的安装位于“ / var / www / website”中。我已经检查了文件路径,并且Html文件夹不存在。

"/var/www/website/vendor/laravel/framework/src/Illuminate/Html"

我可以在其他目录中找到类文件。

"/var/www/website/vendor/illuminate/html"

我将文件手动复制到了Laravel的illuminate / html主文件夹中,但这也不起作用。

Answers:


48

这可能不是您要找的答案,但是我建议您使用现在由社区维护的存储库Laravel Collective Forms和HTML,因为主要存储库已被弃用。

Laravel Collective正在更新其网站。如果需要,您可以在GitHub上查看文档


1
知道为什么在v5中将其删除吗?
musicliftsme 2015年

4
似乎他们想使它更轻巧,让人们仅在需要时才添加东西。
丹·黑斯廷斯

1
他们在升级指南或其他地方注意到了吗?没有看到它。
KeizerBridge15年

谢谢不知道laravel的这个新功能,它仍然在主要文档中,所以我不知道这不是v5中的功能。
山姆

93

Form不包含在4.0中,而是包含在laravel 5.0中,包括它的步骤:

首先通过安装laravelcollective/html软件包Composer。编辑项目的composer.json文件以要求:

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

接下来,composer从终端更新:

composer update

接下来,将您的新提供程序添加到的providers数组中config/app.php

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

最后,将两个类别名添加到的aliases数组中config/app.php

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

在这一点上,Form应该工作

资源


更新 Laravel 5.8(2019-04-05):

Laravel 5.8中的providers中,config/app.php可以声明为:

Collective\Html\HtmlServiceProvider::class,

代替:

'Collective\Html\HtmlServiceProvider',

对于别名,此表示法相同。


2
SRC链接已更新。laravelcollective.com/docs/5.3/html 从5.0到5.3,他们更改了提供程序和别名部分。Collective \ Html \ HtmlServiceProvider :: class,用于提供程序,然后'Form'=> Collective \ Html \ FormFacade :: class,'Html'=> Collective \ Html \ HtmlFacade :: class,用于别名。
马蒂

1
为什么在laravel文档中没有明确说明默认情况下不包含相当基本的组件。
布拉德(Brad)

27

只需在项目目录的终端中键入以下命令,然后根据Laravel版本完成安装:

composer require "laravelcollective/html"

然后在这些行中添加 config/app.php

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

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

很棒的答案。Tnq太多
rashedcs '20

25

您也可以尝试在终端或命令中运行以下命令:

  1. composer dump-auto 要么 composer dump-auto -o
  2. php artisan cache:clear
  3. php artisan config:clear

以上为我工作。


16

Laravel 5.2对此进行了更新。请注意,此格式与上述格式略有不同。

首先通过Composer安装此软件包。编辑项目的composer.json文件以要求laravelcollective / html。

"require": {
    "laravelcollective/html": "5.2.*"
}

接下来,从终端更新Composer:

composer update

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

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

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

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

进行此更新后,此代码在新安装的Laravel 5.2上对我有用:

{!! Form::open(array('url' => 'foo/bar')) !!}
    //
{!! Form::close() !!}

我在这里获得此信息:https : //laravelcollective.com/docs/5.2/html


5

首先通过Composer安装此软件包。从终端运行以下命令:

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

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

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

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

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

SRC:

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


2

在Laravel版本-4中,存在HTML和Form,但现在不存在。

为什么:

唯一的原因是他们已经收集了一些用户需求,并且希望它更加轻巧,因此从用户可以手动添加的意义上删除了它。

如何在Laravel 5.2或5.3中添加HTML和表单:

对于5.2:

转到Laravel Collective站点,安装过程已演示了它们。

像5.2:在命令行上,运行命令

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

然后,在config / app.php中的提供程序数组。最后使用逗号添加此行:

Collective\Html\HtmlServiceProvider::class,

为了使用HTML和FORM文本,我们需要在config / app.phpaliases数组中为它们加上别名。最后添加两行

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

对于5.3:

只需运行命令

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

其余过程类似于5.2

然后,您可以在项目中使用Laravel Form和其他HTML链接。为此,请遵循以下文档:

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

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

演示代码:

要打开表单,请打开并关闭标签:

{!! Form::open(['url' => 'foo/bar']) !!}

{!! Form::close() !!}

为了创建带有Bootstrap表单控件类的标签和输入文本以及其他用途:

{!! Form::label('title', 'Post Title') !!}
{!! Form::text('title', null, array('class' => 'form-control')) !!}

有关更多信息,请使用文档https://laravelcollective.com/


1

使用Form,而不是form。大写很重要。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.