4.2から5.1に直接アップグレードしていると、HtmlクラスとFormクラスで問題が発生します。
私はアップグレードノートをたどって
しかし、私の見解は機能しません。 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アプリケーションを作成し、コードをコピーしてから機能し始めました。実際の問題は謎のままです。
私の問題は解決しましたが、実際の原因はまだ不明です。私は完全に新しい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') !!}
私の場合の私の解決策は、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'を使用する必要があります。
これが一部の人々の助けになることを願っています。
これからブレードファイルを変更してください
{{ HTML::style('css/bootstrap.min.css') }}
に
{{ Html::style('css/bootstrap.min.css') }}
それは働いています。
composer更新後の単純な再起動は私にとって完璧に機能しました。私は答えを探していて、同じ位置で動かなくなりました。config.cacheおよびcache:clearを実行して再起動することをお勧めしますIDE。それは動作します。
私は解決策を見つけたと思います。
あなたの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,
編集config/app.php
これをprovidersに追加します
Collective\Html\HtmlServiceProvider::class,
そしてこれをaliasesに入れます
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
これは正しい方法です。Form=:open()またはFormメソッドのいずれかを新しいLaravel 5インストールで使用しようとすると、次のようになります。 http: //laraveldaily.com/class-form-not-found-in-laravel-5/
それを試してみてください
php artisan cache:clear
pHP職人クリアコンパイル