web-dev-qa-db-ja.com

Laravel 5.1:クラスhtmlは存在しません

4.2から5.1に直接アップグレードしていると、HtmlクラスとFormクラスで問題が発生します。

私はアップグレードノートをたどって

  • "laravelcollective/html": "〜5.0"をcomposer.jsonに追加します
  • 作曲家の更新
  • app.phpのプロバイダーにCollective\Html\HtmlServiceProvider :: classを追加します
  • 追加Form '=> Collective\Html\FormFacade :: class、Html' => Collective\Html\HtmlFacade :: class app.phpのエイリアスに

しかし、私の見解は機能しません。 HTML :: routerの使用時にClass HTML does not existを取得するか、link_to_routeの使用時にClass html does not existを取得します

laravelcollectiveではなくIlluminate\htmlも試しましたが、composer dump-autoloadを試しました。

完全なエラー:

ErrorException in Container.php line 736: Class html does not exist (View: C:\Dev\www\admin\resources\views\clubs\index.blade.php)
ReflectionException in Container.php line 736: Class html does not exist

何が欠けていますか?


全員の回答を試しましたが、何らかの理由でどれもうまくいきませんでした。最終的に、完全に新しいlaravelアプリケーションを作成し、コードをコピーしてから機能し始めました。実際の問題は謎のままです。

11

私の問題は解決しましたが、実際の原因はまだ不明です。私は完全に新しいlaravelインストールを作成し、私のソース(すべて)をコピーしました。新しいアプリケーションはすぐに動作しました(illuminate/htmlをインストールした後)。

あなたは私がパッケージで何か間違ったことをしたと思いますか?それが私が考えたものであり、それから私は2つのディレクトリでdiffを実行しました。ですから、それは本当の謎です。

これで、すべてが機能するようになり、新しいアプリケーションの名前を変更するだけで続行できます。

HTMLパッケージの一括バージョンと照明バージョンの両方がインストールされていたことがいつかわかると思います。それが最も可能性が高いすべてのものを破損しています。

Composer.jsonに追加

 "illuminate/html": "5.*"

composer updateを実行します

Config/app.phpを開きます

「プロバイダー」の下に追加

Illuminate\Html\HtmlServiceProvider::class,

「エイリアス」の下に追加

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

そしてあなたのブレードテンプレートの下で、そのように使用してください

{!! HTML::style('assets/css/flatten.css') !!}
16
animesh manglik

私の場合の私の解決策は、CASE-Sensitiveクラス名の問題でした。

In my config/app.php (in aliases)
'Form'      => Collective\Html\FormFacade::class,
'Html'      => Collective\Html\HtmlFacade::class,

私はこのコードを表示するために使用しようとしています:

{!! HTML::mailto('mailto:[email protected]', '[email protected]'); !!}

そしてそれはエラーでした:

"FatalErrorException in ccf70b1d0b9930d6c4e8f3859fff448f line 11: Class 'HTML' not found"

クラス「HTML」の名前は大文字小文字を区別します。 config(config/app.php)ファイルのように 'Html'を使用する必要があります。

これが一部の人々の助けになることを願っています。

10
Yurii Svystun

これからブレードファイルを変更してください

{{ HTML::style('css/bootstrap.min.css') }}

{{ Html::style('css/bootstrap.min.css') }}

それは働いています。

3

composer更新後の単純な再起動は私にとって完璧に機能しました。私は答えを探していて、同じ位置で動かなくなりました。config.cacheおよびcache:clearを実行して再起動することをお勧めしますIDE。それは動作します。

2
manshu

私は解決策を見つけたと思います。

あなたのapp.php宣言しました

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

View内で、次と同じクラスを呼び出しました

{!! HTML::style('css/bootstrap.min.css') !!}

上記のマークされた回答としてのパッケージには何の問題もありませんが、以前のドキュメントver 5.0。*のように、Wordの大文字の使用法HTMLに違いはありません。

そのはず

'Form'      => Illuminate\Html\FormFacade::class,
'HTML'      => Illuminate\Html\HtmlFacade::class,
0
madSkillz

編集config/app.php

これをprovidersに追加します

Collective\Html\HtmlServiceProvider::class,

そしてこれをaliasesに入れます

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

これは正しい方法です。Form=:open()またはFormメソッドのいずれかを新しいLaravel 5インストールで使用しようとすると、次のようになります。 http: //laraveldaily.com/class-form-not-found-in-laravel-5/

0
channasmcs

それを試してみてください

php artisan cache:clear

pHP職人クリアコンパイル

0
Sergey