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, но это тоже не сработало.
Ответы
Ответ 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