Я обновляюсь от 4.2 до 5.1 и сталкиваюсь с проблемами с классами Html и Form.
Я следил за обновлениями и делал
Но мои взгляды не работают. Я получаю, что 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, скопировал свой код, а затем начал работать, поэтому, хотя проблема решена, проблема остается загадкой.
Добавить в композитор.json
"illuminate/html": "5.*"
и запустить обновление для композитора
Откройте конфигурацию / app.php
добавить под «поставщиками»
Illuminate\Html\HtmlServiceProvider::class,
добавить под «псевдонимы»
'Form' => Illuminate\Html\FormFacade::class, 'Html' => Illuminate\Html\HtmlFacade::class,
и под вашими шаблонами клинков, используйте как таковые
{!! HTML::style('assets/css/flatten.css') !!}
Мое решение в моем случае было проблемой с именем класса CASE-Sensitive.
In my config/app.php (in aliases) 'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class,
Я пытаюсь использовать этот код:
{!! HTML::mailto('mailto:example@example.com', 'example@example.com'); !!}
и это была ошибка:
"FatalErrorException in ccf70b1d0b9930d6c4e8f3859fff448f line 11: Class 'HTML' not found"
Имя класса «HTML» CASE-Sensitive. Вы должны использовать «Html», как в вашем файле config (config / app.php).
Надеюсь, эта помощь для некоторых людей.
Измените файл клика
{{ HTML::style('css/bootstrap.min.css') }}
в
{{ Html::style('css/bootstrap.min.css') }}
Работает.
Простой перезапуск после обновления композитора отлично работал для меня. Я искал ответ и застрял в том же положении. Я бы предложил, запустите config: cache и cache: очистите и перезапустите среду IDE. Это будет работать.
Моя проблема решена, но фактическая причина пока неизвестна. Я создал совершенно новую установку laravel и скопировал мой источник (все это). Новое приложение сразу работало (после установки подсветки / html).
Значит, вы думаете, что я сделал что-то не так с пакетами? Это то, что я подумал, а затем я сделал разницу по двум каталогам, только чтобы узнать, что они идентичны. Так что это настоящая загадка.
Итак, теперь все работает, я просто переименовал новое приложение и могу продолжить.
Я знаю, что в какой-то момент у меня, вероятно, были установлены как коллективные, так и освещаемые версии пакета HTML. Это, скорее всего, все испортило.
это правильно. Если вы попытаетесь использовать Form :: open () или любой из методов Form в новой установке Laravel 5, вы получите что-то вроде этого: http://laraveldaily.com/class-form-not-found -в-Laravel-5 /
Думаю, я нашел решение.
В своем 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,
Попробуй
Кэш php-artisan: clear
php-artisan с ясной компиляцией
edit config / app.php
добавьте это в поставщиков
Collective\Html\HtmlServiceProvider::class,
и это в псевдонимы
'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class,