web-dev-qa-db-fra.com

Laravel 5.1: La classe HTML n'existe pas

Je passe de la version 4.2 directement à la version 5.1 et je rencontre des problèmes avec les classes HTML et Form.

J'ai suivi les notes de mise à niveau et

  • ajoutez "laravelcollective/html": "~ 5.0" à composer.json
  • mise à jour du compositeur
  • ajoutez Collective\Html\HtmlServiceProvider :: class aux fournisseurs dans app.php
  • add Form '=> Collective\Html\FormFacade :: class, Html '=> Collective\Html\HtmlFacade :: class aux alias dans app.php

Mais mes points de vue ne fonctionnent pas. Je reçois soit Class HTML does not exist en utilisant HTML :: router, soit Class html does not exist en utilisant link_to_route

J'ai aussi essayé Illuminate\html au lieu de laravelcollective, j'ai fait un composer dump-autoload.

Les erreurs complètes:

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

Qu'est-ce que je rate?


J'ai essayé les réponses de tout le monde et aucune d'entre elles n'a fonctionné pour moi pour une raison quelconque. En fin de compte, j'ai créé une toute nouvelle application laravel, copié mon code puis tout a commencé à fonctionner. Le problème, même résolu, reste donc un mystère.

11

Mon problème est résolu, mais la cause réelle reste inconnue. J'ai créé une nouvelle installation de laravel et copié mon source (le tout). La nouvelle application a fonctionné immédiatement (après l’installation d’illuminate/html). 

Donc vous pensez que j'ai fait quelque chose de mal avec les paquets? C'est ce que je pensais, puis j'ai fait un diff sur les deux répertoires, pour découvrir qu'ils étaient identiques. C'est donc un vrai mystère. 

Donc, maintenant tout fonctionne, j'ai simplement renommé ma nouvelle application et je peux continuer.

Je sais qu'à un moment donné, les versions collective et illuminée du paquet HTML ont probablement été installées. C'est ce qui a probablement tout corrompu.

1

Ajouter composer.json

 "illuminate/html": "5.*"

et lancez la mise à jour du compositeur

Ouvrez votre config/app.php

ajouter sous 'fournisseurs'

Illuminate\Html\HtmlServiceProvider::class,

ajouter sous 'alias'

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

et sous vos modèles de lames, utilisez-les comme tels

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

Ma solution dans mon cas était un problème avec le nom de classe CASE-Sensitive.

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

Je suis essayé d'utiliser en vue ce code:

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

et c'était une erreur:

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

Le nom de la classe 'HTML' est sensible à CASE. Vous devez utiliser 'Html' comme dans votre fichier config (config/app.php).

J'espère que cette aide pour certaines personnes.

10
Yurii Svystun

S'il vous plaît changer votre fichier de lame à partir de cette

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

à 

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

Ça marche.

3
shijinmon Pallikal

Un simple redémarrage après la mise à jour du compositeur a parfaitement fonctionné pour moi. Je cherchais la réponse et je me suis retrouvé coincé à la même position. Je suggérerais de lancer config: cache et cache: effacer et redémarrer l'EDI. Ça va marcher.

2
manshu

Je pense avoir trouvé la solution.

Dans votre app.php vous avez déclaré 

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

Dans votre View, vous avez appelé la même classe que 

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

Il n'y a rien de mal à ce que les paquets correspondent à la réponse marquée ci-dessus, mais plutôt à une différence de majuscule de Word HTML à la version précédente de la version 5.0. *.

CA devrait etre 

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

edit config/app.php

ajouter ceci dans providers

Collective\Html\HtmlServiceProvider::class,

et ceci dans aliases

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

si vous essayez d’utiliser Form :: open () ou l’une des méthodes du formulaire dans une nouvelle installation de Laravel 5, vous obtiendrez quelque chose comme ceci: http://laraveldaily.com/class-form-not-found-in-laravel-5/

0
channasmcs

L'essayer

php artisan cache: effacer

php artisan clairement compilé

0
Sergey