web-dev-qa-db-fra.com

Laravel 5 Classe 'forme' introuvable

J'ai ajouté "illuminate/html": "5. *" à composer.json et j'ai lancé "composer update". 

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

J'ai couru cette commande à la racine du site. J'ai modifié le fichier composer.json dans /root/.composer .. et à la racine du projet et aucun d'entre eux n'a fait de différence.

Cela a téléchargé la classe et il a semblé installer. J'ai ajouté ce qui suit à config/app.php

    'Illuminate\Html\HtmlServiceProvider', 

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

Je pense avoir une idée de ce qui ne va pas, mais je ne sais pas comment le réparer. Mon installation est dans '/ var/www/website'. J'ai vérifié le chemin du fichier et le dossier HTML n'existe pas.

"/var/www/website/vendor/laravel/framework/src/Illuminate/Html"

j'ai pu trouver les fichiers de la classe mais dans un autre répertoire. 

"/var/www/website/vendor/illuminate/html"

J'ai copié manuellement les fichiers dans le dossier laravel illuminate/html principal, mais cela n'a pas fonctionné non plus.

57
Dan Hastings

Ce n'est peut-être pas la solution que vous cherchez, mais je vous conseillerais d'utiliser le référentiel géré par la communauté Laravel Collective Forms & HTML car les référentiels principaux sont obsolètes.

40
mhanson01

Form n'est pas inclus dans laravel5.0 comme c'était le cas sur 4.0, étapes pour l'inclure:

Commencez par installer le package laravelcollective/html via la variable Composer. Editez le fichier composer.json de votre projet pour exiger: 

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

Ensuite, mettez à jour composer à partir du terminal:

composer update

Ensuite, ajoutez votre nouveau fournisseur au tableau providers de config/app.php:

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

Enfin, ajoutez deux alias de classe au tableau aliases de config/app.php:

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

À ce stade, Form devrait fonctionner 

SRC:

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

70
Pedro Lobito

Vous pouvez également essayer d’exécuter les commandes suivantes dans Terminal ou Command:
1. composer dump-auto ou composer dump-auto -o 
2. php artisan cache:clear 
3. php artisan config:clear 

Ce qui précède a fonctionné pour moi

20
user28864

Il existe une mise à jour à cela pour Laravel 5.2. Notez que le format est légèrement différent de celui indiqué ci-dessus.

Commencez par installer ce paquet via Composer. Modifiez le fichier composer.json de votre projet afin d'exiger laravelcollective/html.

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

Ensuite, mettez à jour Composer à partir du terminal:

composer update

Ensuite, ajoutez votre nouveau fournisseur au tableau des fournisseurs de config/app.php:

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

Enfin, ajoutez deux alias de classe au tableau d'alias de config/app.php:

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

Après avoir effectué cette mise à jour, ce code a fonctionné pour moi sur une nouvelle installation de Laravel 5.2:

{!! Form::open(array('url' => 'foo/bar')) !!}
    //
{!! Form::close() !!}

J'ai cette information ici: https://laravelcollective.com/docs/5.2/html

10
jessier3

Il suffit de taper la commande suivante dans terminal dans le répertoire du projet et l’installation s’effectue conformément à la version de laravel:

composer require "laravelcollective/html"

Puis ajoutez ces lignes dans config/app.php

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

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

Commencez par installer ce paquet via Composer. Exécutez ce qui suit à partir du terminal:

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

Ensuite, ajoutez votre nouveau fournisseur au tableau des fournisseurs de config/app.php:

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

Enfin, ajoutez deux alias de classe au tableau d'alias de config/app.php:

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

SRC:

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

3
Raham

Dans Laravel Version - 4, HTML & Form existait déjà, mais pas maintenant.

Pourquoi :

La seule raison est qu’ils ont collecté certaines exigences des utilisateurs et qu’ils le souhaitent plus léger. Ils l’ont donc supprimé car cela permet à l’utilisateur de l’ajouter manuellement.

Que faire pour ajouter HTML & Forms dans Laravel 5.2 ou 5.3:

Pour 5.2:

Allez sur le site Laravel Collective et les processus d’installation ont démontré leur.

Comme pour 5.2: en ligne de commande, lancez la commande

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

Ensuite, dans fournisseur tableau qui se trouve dans config/app.php. Ajoutez cette ligne enfin en utilisant une virgule (,)

Collective\Html\HtmlServiceProvider::class,

Pour utiliser du texte HTML et FORM, nous devons les aliaser dans tableau d'alias de config/app.php. Ajouter les deux lignes à la dernière

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

Et pour 5.3:

Il suffit de lancer la commande 

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

Et le reste de la procédure est comme 5.2

Ensuite, vous pouvez utiliser Laravel Form et d’autres liens HTML dans vos projets. Pour cela, suivez cette documentation:

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

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

Code de démonstration: Pour ouvrir une balise d'ouverture et de fermeture de formulaire:

{!! Form::open(['url' => 'foo/bar']) !!}

{!! Form::close() !!}

Et pour créer une étiquette et du texte d'entrée avec une classe de contrôle de formulaire bootstrap et autres utilisations:

{!! Form::label('title', 'Post Title') !!}
{!! Form::text('title', null, array('class' => 'form-control')) !!}

Et pour plus d'informations, utilisez la documentation https://laravelcollective.com/

1
Maniruzzaman Akash

J'ai tout essayé mais seulement ça a aidé:

php artisan route:clear
php artisan cache:clear
0
Krzysztof Dziuba

Utilisez Form pas form, la capitalisation compte. 

0
kpp