Подтвердить что ты не робот

Laravel 5 Class 'form' not found

Я добавил "illuminate/html": "5. *" в composer.json и запустил "композиторское обновление".

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

Я запустил эту команду в корневом каталоге веб-сайта. Я изменил файл composer.json в /root/.composer.. и в корне проекта, и ни один из них не изменил.

Загрузил класс и, казалось, установил его. Я добавил следующее в config/app.php

    'Illuminate\Html\HtmlServiceProvider', 

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

Я думаю, у меня есть идея, что не так, но я не знаю, как это исправить. Моя установка находится в каталоге /var/www/website. Я проверил путь к файлу, и папка Html не существует.

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

i удалось найти файлы классов, но в другом каталоге.

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

Я вручную скопировал файлы в основную папку larvel illuminate/html, но это тоже не сработало.

4b9b3361

Ответ 1

Возможно, это не тот ответ, который вы ищете, но я бы рекомендовал использовать поддерживаемый сообществом репозиторий Laravel Collective Forms & HTML, так как основные репозитории устарели.

редактировать: Laravel Collective находится в процессе обновления своего сайта. При необходимости вы можете просмотреть документацию на GitHub.

Ответ 2

Form не включена в laravel 5.0, как это было на 4.0, шаги для ее включения:

Начните с установки laravelcollective/html через Composer. Отредактируйте файл проекта composer.json чтобы он требовал:

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

Далее обновите composer из Терминала:

composer update

Затем добавьте вашего нового провайдера в массив providers config/app.php:

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

Наконец, добавьте два псевдонима класса в массив aliases config/app.php:

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

На данный момент Form должна работать

Источник


Обновление Laravel 5.8 (2019-04-05):

В Laravel 5.8 providers в config/app.php могут быть объявлены как:

Collective\Html\HtmlServiceProvider::class,

вместо:

'Collective\Html\HtmlServiceProvider',

Это обозначение то же самое для псевдонимов.

Ответ 3

Вы также можете попробовать запустить следующие команды в терминале или команде:
1. composer dump-auto или composer dump-auto -o
2. php artisan cache:clear
3. php artisan config:clear

Выше работали для меня

Ответ 4

Просто введите следующую команду в терминале в каталоге проекта, и установка будет выполнена в соответствии с версией laravel:

composer require "laravelcollective/html"

Затем добавьте эти строки в config/app.php

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

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

Ответ 5

Это обновление для Laravel 5.2. Обратите внимание, что этот формат немного отличается от указанного выше.

Начните с установки этого пакета через Composer. Отредактируйте файл проекта composer.json так, чтобы он требовал laravelcollective/html.

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

Затем обновите Composer из терминала:

composer update

Затем добавьте вашего нового провайдера в массив провайдеров config/app.php:

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

Наконец, добавьте два псевдонима класса в массив aliases файла config/app.php:

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

После этого обновления этот код работал для меня на новой установке Laravel 5.2:

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

Я получил эту информацию здесь: https://laravelcollective.com/docs/5.2/html

Ответ 6

Начните с установки этого пакета через Composer. Выполните следующее из терминала:

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

Затем добавьте нового поставщика в массив поставщиков config/app.php:

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

Наконец, добавьте две псевдонимы классов в массив псевдонимов config/app.php:

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

SRC:

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

Ответ 7

В версии Laravel - 4, HTML и Form существовали, но не сейчас.

Почему:

Единственная причина в том, что они собрали некоторые пользовательские требования, и они хотят, чтобы они были более легкими, и поэтому они удалили его как это чувство, которое пользователь может добавить вручную.

Что нужно сделать, чтобы добавить HTML и формы в Laravel 5.2 или 5.3:

Для 5.2:

Перейдите в коллективный сайт Laravel, и процессы установки продемонстрировали их.

Как и для 5.2: в командной строке запустите команду

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

Затем в массиве поставщиков, который находится в config/app.php. Добавьте эту строку, используя запятую (,)

Collective\Html\HtmlServiceProvider::class,

Для использования текста HTML и FORM нам нужно сгладить их в массиве aliases config/app.php. Добавьте две строки в последнюю

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

И для 5.3:

Просто запустите команду

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

Остальная процедура похожа на 5.2

Затем вы можете использовать Laravel Form и другие HTML-ссылки в ваших проектах. Для этого следуйте этой документации:

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

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

Демо-код: Чтобы открыть форму, откройте и закройте тег:

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

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

И для создания ярлыка и ввода текста с помощью класса управления форматом bootstrap и другого использования:

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

И для получения дополнительной информации используйте документацию https://laravelcollective.com/

Ответ 8

Используйте Form, а не form. Капитализация имеет значение.

Ответ 9

Я пробовал все, но только это помогло:

php artisan route:clear
php artisan cache:clear