it-swarm.com.de

Laravel 5.1: Die Klasse HTML ist nicht vorhanden

Ich aktualisiere von 4.2 direkt auf 5.1 und habe Probleme mit den Klassen Html und Form.

Ich folgte den Upgrade-Hinweisen und tat es

  • fügen Sie "laravelcollective/html": "~ 5.0" zu composer.json hinzu
  • komponisten-Update
  • fügen Sie den Anbietern in app.php die Klasse Collective\Html\HtmlServiceProvider :: hinzu
  • add Form '=> Collective\Html\FormFacade :: class, Html '=> Collective\Html\HtmlFacade :: Klasse an Aliase in app.php

Aber meine Ansichten funktionieren nicht. Ich erhalte entweder Class HTML does not exist bei der Verwendung von HTML :: router oder Class html does not exist bei der Verwendung von link_to_route

Ich habe auch Illuminate\html anstelle von laravelcollective ausprobiert, ich habe einen composer dump-autoload gemacht.

Die kompletten Fehler:

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

Was vermisse ich?


Ich habe alle Antworten ausprobiert und keiner hat aus irgendeinem Grund für mich gearbeitet. Letztendlich habe ich eine komplett neue Laravel-Anwendung erstellt, meinen Code kopiert und dann hat es funktioniert.

11

Mein Problem ist gelöst, aber die eigentliche Ursache ist noch unbekannt. Ich habe eine komplett neue Laravel-Installation erstellt und meine Quelle (alles) kopiert. Die neue Anwendung funktionierte sofort (nach der Installation von illuminate/html). 

Sie glauben also, ich habe mit Paketen etwas falsch gemacht? Das habe ich mir gedacht, und dann habe ich die beiden Verzeichnisse verglichen, nur um herauszufinden, dass sie identisch waren. Es ist also ein echtes Rätsel. 

Jetzt funktioniert alles, ich habe meine neue Anwendung einfach umbenannt und kann fortfahren.

Ich weiß, irgendwann hatte ich wahrscheinlich sowohl die kollektiven als auch die beleuchteten Versionen des HTML-Pakets installiert. Das hat wahrscheinlich alles kaputt gemacht.

Fügen Sie in composer.json hinzu

 "illuminate/html": "5.*"

und führen Sie das Composer-Update aus

Öffnen Sie Ihre config/app.php

unter 'Anbieter' hinzufügen

Illuminate\Html\HtmlServiceProvider::class,

unter "Aliase" hinzufügen

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

und unter Ihren Blade-Vorlagen als solche verwenden

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

Meine Lösung in meinem Fall war ein Problem mit dem Klassennamen CASE-Sensitive.

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

Ich habe versucht, diesen Code anzuzeigen:

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

und das war ein fehler:

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

Der Name der Klasse 'HTML' lautet CASE-Sensitive. Sie sollten 'Html' wie in Ihrer config-Datei (config/app.php) verwenden.

Hoffe diese Hilfe für einige Leute.

10
Yurii Svystun

Bitte ändern Sie Ihre Blade-Datei hier

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

zu 

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

Es funktioniert.

3

Ein einfacher Neustart nach dem Composer-Update hat für mich perfekt funktioniert. Ich suchte nach der Antwort und blieb an derselben Stelle hängen. Ich würde vorschlagen, config: cache und cache auszuführen: die IDE löschen und neu starten. Es wird klappen.

2
manshu

Ich glaube, ich habe die Lösung gefunden.

In Ihrem app.php haben Sie erklärt 

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

In Ihrem View haben Sie dieselbe Klasse als aufgerufen 

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

Es gibt nichts falsches an den Paketen als der markierten Antwort oben, sondern eher in der Großschreibung des Wortes HTML als in der vorherigen Dokumentation Version 5.0.

Es sollte sein 

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

editiere config/app.php

füge dies zu provider

Collective\Html\HtmlServiceProvider::class,

und dies in Aliase

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

dies ist der richtige Weg Wenn Sie versuchen, Form :: open () oder eine der Form-Methoden in einer neuen Installation von Laravel 5 zu verwenden, würden Sie etwa Folgendes erhalten: http://laraveldaily.com/class-form-not-found-in-laravel-5/

0
channasmcs

Versuch es

pHP-Handwerker-Cache: klar

pHP Handwerker übersichtlich kompiliert

0
Sergey