Laravel 5.1: класс html не существует
Я обновляюсь с 4.2 непосредственно до 5.1 и сталкиваюсь с проблемами с классами Html и Form.
Я следил за обновлениями и делал
- добавить "laravelcollective/html": "~ 5.0" в composer.json
- обновление композитора
- добавить коллективный \Html\HtmlServiceProvider:: класс для поставщиков в app.php
- добавить форму '= > коллективный \Html\FormFacade:: класс, Html '= > Коллективный \Html\HtmlFacade:: класс для псевдонимов в app.php
Но мои взгляды не работают. Я получаю либо Class HTML does not exist
при использовании HTML:: router или get Class HTML does not exist
при использовании link_to_route
Я также пробовал Illuminate\html
вместо laravelcollective
, я сделал composer dump-autoload
.
Полные ошибки:
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
Что мне не хватает?
Я попробовал все ответы, и никто из них не работал у меня по какой-то причине. В конечном итоге я создал совершенно новое приложение для laravel, скопировал свой код, а затем начал работать, поэтому, хотя проблема решена, проблема остается загадкой.
Ответы
Ответ 1
Моя проблема решена, но фактическая причина пока неизвестна. Я создал совершенно новую установку laravel и скопировал мой источник (все это). Новое приложение сразу работало (после установки подсветки /html ).
Итак, вы думаете, что я сделал что-то не так с пакетами? Это то, что я думал, а затем я сделал разницу по двум каталогам, только чтобы узнать, что они были одинаковыми. Так что это настоящая загадка.
Итак, теперь все работает, я просто переименовал свое новое приложение и могу продолжить.
Я знаю, что в какой-то момент у меня, вероятно, были установлены как коллективные, так и освещаемые версии пакета HTML. Это, скорее всего, все испортило.
Ответ 2
Добавить в composer.json
"illuminate/html": "5.*"
и запустите обновление композитора
Откройте файл config/app.php
добавить под "провайдеры"
Illuminate\Html\HtmlServiceProvider::class,
добавить под "псевдонимы"
'Form' => Illuminate\Html\FormFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
и под вашими шаблонами клинков, используйте как таковые
{!! HTML::style('assets/css/flatten.css') !!}
Ответ 3
Мое решение в моем случае было проблемой с именем класса CASE-Sensitive.
In my config/app.php (in aliases)
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
Я пытаюсь использовать в виду этот код:
{!! HTML::mailto('mailto:[email protected]', '[email protected]'); !!}
и это было ошибкой:
"FatalErrorException in ccf70b1d0b9930d6c4e8f3859fff448f line 11: Class 'HTML' not found"
Название класса "HTML" CASE-Sensitive. Вы должны использовать "Html", как в вашем файле config (config/app.php).
Надеюсь, что эта помощь для некоторых людей.
Ответ 4
Измените файл клинка на этом
{{ HTML::style('css/bootstrap.min.css') }}
to
{{ HTML::style('css/bootstrap.min.css') }}
Работает.
Ответ 5
Простой перезапуск после обновления композитора отлично работал у меня. Я искал ответ и застрял в том же положении. Я бы предложил, запустите config: cache и cache: очистите и перезапустите среду IDE. Он будет работать.
Ответ 6
это правильный путь
Если вы попытаетесь использовать Form:: open() или любой из методов Form в новой установке Laravel 5, вы получите что-то вроде этого:
http://laraveldaily.com/class-form-not-found-in-laravel-5/
Ответ 7
Я думаю, что нашел решение.
В app.php
вы объявили
'Form' => Illuminate\Html\FormFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
Пока в View
вы вызываете тот же класс, что и
{!! HTML::style('css/bootstrap.min.css') !!}
В пакетах нет ничего плохого, как отмеченный ответ выше, а скорее разница в капитализации слова HTML
как предыдущая документация версии 5.0. *.
Это должно быть
'Form' => Illuminate\Html\FormFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
Ответ 8
Попробуйте
php artisan cache: clear
php artisan clear-compiled
Ответ 9
изменить config/app.php
добавьте это в поставщиков
Collective\Html\HtmlServiceProvider::class,
и это в псевдонимы
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,