web-dev-qa-db-ja.com

Laravel 5クラス「フォーム」が見つかりません

Composer.jsonに「illuminate/html」:「5. *」を追加し、「composer update」を実行しました。

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

このコマンドは、Webサイトのルートで実行しました。 /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フォルダーに手動でファイルをコピーしましたが、これも機能しませんでした。

58
Dan Hastings

これはあなたが探している答えではないかもしれませんが、現在コミュニティが管理しているリポジトリ Laravel Collective Forms&HTML を使用することをお勧めします。主なリポジトリは廃止されました。

編集:Laravel CollectiveはWebサイトを更新しています。 GitHubのドキュメントを見る 必要に応じて。

41
mhanson01

Formは、laravel5.0には含まれていません4.0、含める手順:

Composerを介してlaravelcollective/htmlパッケージをインストールすることから始めます。プロジェクトのcomposer.jsonファイルを編集して、以下を要求します。

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

次に、ターミナルからcomposerを更新します。

composer update

次に、新しいプロバイダーをconfig/app.phpproviders配列に追加します。

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

最後に、2つのクラスエイリアスをconfig/app.phpaliases配列に追加します。

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

この時点で、Formは機能しているはずです

ソース


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

Laravel 5.8では、config/app.phpprovidersは次のように宣言できます。

Collective\Html\HtmlServiceProvider::class,

の代わりに:

'Collective\Html\HtmlServiceProvider',

この表記はエイリアスについても同じです。

78
Pedro Lobito

ターミナルまたはコマンドで次のコマンドを実行してみることもできます。
1。 composer dump-autoまたはcomposer dump-auto -o
2。 php artisan cache:clear
3。 php artisan config:clear

上記は私のために働いた

20
user28864

プロジェクトディレクトリのターミナルで次のコマンドを入力するだけで、laravelバージョンに従ってインストールが完了します。

composer require "laravelcollective/html"

次に、これらの行をconfig/app.phpに追加します

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

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

Laravel 5.2の更新があります。これは上記の形式とはわずかに異なる形式であることに注意してください。

Composerからこのパッケージをインストールすることから始めます。プロジェクトのcomposer.jsonファイルを編集して、laravelcollective/htmlを要求します。

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

次に、ターミナルからComposerを更新します。

composer update

次に、config/app.phpのプロバイダー配列に新しいプロバイダーを追加します。

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

最後に、config/app.phpのエイリアス配列に2つのクラスエイリアスを追加します。

  '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

11
jessier3

Composerからこのパッケージをインストールすることから始めます。ターミナルから次を実行します。

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

次に、config/app.phpのプロバイダー配列に新しいプロバイダーを追加します。

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

最後に、config/app.phpのエイリアス配列に2つのクラスエイリアスを追加します。

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

SRC:

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

3
Raham

Laravelバージョン-4では、HTMLとフォームが存在しましたが、現在は存在しませんでした。

なぜ:

唯一の理由は、いくつかのユーザー要件を収集し、より軽量にすることを望んでいるため、ユーザーが手動で追加できるという意味で削除しました。

Laravel 5.2または5.3:でHTMLとフォームを追加するために何をするか

5.2の場合:

Laravel Collectiveサイト にアクセスすると、インストールプロセスがそれらを実証しました。

5.2のように:コマンドラインでコマンドを実行します

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

次に、provider配列にあるconfig/app.phpにあります。最後にコンマ(、)を使用してこの行を追加します

Collective\Html\HtmlServiceProvider::class,

HTMLとFORMテキストを使用するには、config/app.phpaliases arrayでエイリアスを作成する必要があります。最後に2行を追加します

'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

私はすべてを試しましたが、これだけが助けました:

php artisan route:clear
php artisan cache:clear
0

Formではなく、formを使用してください。大文字は重要です。

0
kpp