2015-07-10 6 views
10

Я обновляюсь с 4.2 непосредственно до 5.1 и сталкиваюсь с проблемами с классами Html и Form.Laravel 5.1: Класс html не существует

Я следовал инструкции по обновлению и сделал

  • добавить "laravelcollective/html": "~ 5,0" до composer.json
  • обновление композитор
  • добавить Коллективный \ Html \ HtmlServiceProvider :: класс поставщикам в app.php
  • добавить форму '=> Коллективная \ Html \ FormFacade :: класс, Html' => Коллективная \ Html \ HtmlFacade :: класс псевдонимами в app.php

Но мои взгляды не работают. Я получаю либо Class HTML does not exist при использовании HTML :: маршрутизатора или получить 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, скопировал свой код, а затем начал работать, поэтому, хотя проблема решена, проблема остается загадкой.

+0

Могу ли я спросить, что один из ваших переменных лопастных выглядит? '{{!! Html .... !!} 'или' {{Html ....}} '? – camelCase

+0

Я пробовал все виды, {{}} и {!! !}}, и я пробовал Html, HTML и html, ничего не работает.Я думаю о полной переустановке laravel и работе с нуля. –

+0

Обновление: мне пришлось возвращать все в laravel 5.0, потому что версия PHP моего нового сервера не могла работать 5.1. Dang. –

ответ

1

Моя проблема решена, но реальная причина до сих пор неизвестна. Я создал совершенно новую установку laravel и скопировал мой источник (все это). Новое приложение сразу работало (после установки подсветки/html).

Итак, вы думаете, что я сделал что-то не так с пакетами? Это то, что я подумал, а затем я сделал разницу по двум каталогам, только чтобы узнать, что они идентичны. Так что это настоящая загадка.

Итак, теперь все работает, я просто переименовал свое новое приложение и могу продолжить.

Я знаю, в какой-то момент у меня, вероятно, были установлены как коллективные, так и освещаемые версии пакета HTML. Это, скорее всего, все испортило.

+0

У меня есть laravel 5.1 для этого. .. ссылку на эту ссылку https://laravelcollective.com/docs/5.1/html..Now It's Working My Html Tag not found проблема решена –

+0

Разве это не смешно, что никто не решил мою проблему, наконец, я решил это сам, и у меня есть только 1 голос за это? LOL –

15

Добавить в composer.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') !!} 
+1

Причина в том, что в L5 функции HTML и формы являются необязательной частью структуры. Они не включают его по умолчанию, потому что все больше и больше людей делают все свои шаблоны на стороне клиента. – Zuko

+0

@ Zuko Я установил http://laravelcollective.com/docs/5.1/html, который отделяется от подсветки/html, так что это то же самое. См. Мой новый ответ для получения дополнительной информации. –

+0

@MichielvanderBlonk Является ли официальный Illuminate/Html больше не поддерживаться? Я думал, что это будет, и просто не включаться в рамки по умолчанию. – Zuko

2

Простой перезапуск после обновления композитора отлично работал для меня. Я искал ответ и застрял в том же положении. Я бы предложил, запустите config: cache и cache: очистите и перезапустите среду IDE. Это будет работать.

+0

Это не сработало для меня. Переустановите laravel. –

10

Мое решение в моем случае было проблемой с именем класса 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' является чувствительным к регистру. Вы должны использовать «Html», как в вашем файле config (config/app.php).

Надеюсь, что эта помощь для некоторых людей.

+0

Я исправил это. 'Form' => Collective \ Html \ FormFacade :: class, 'Html' => Collective \ Html \ HtmlFacade :: class, – Leoh

3

Пожалуйста, измените лезвие файл из этого

{{ HTML::style('css/bootstrap.min.css') }} 

в

{{ Html::style('css/bootstrap.min.css') }} 

это работает.

+0

спасибо, но почему? не является ли фазальный псевдоним чувствительным? –

0

Я думаю, что нашел решение.

В ваших app.php вы объявили

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

В то время как в вашем View вы назвали тот же класс, как

{!! HTML::style('css/bootstrap.min.css') !!} 

Там нет ничего плохого с пакетами как маркированной ответ выше, а разность в капитализации слова HTML в качестве предыдущей документации ver 5.0. *.

Это должно быть

'Form'  => Illuminate\Html\FormFacade::class, 
'HTML'  => Illuminate\Html\HtmlFacade::class, 
+0

Я пробовал все случаи, в верхнем регистре, в нижнем регистре, титульный код, вы называете его. Все они были последовательными. Ни один из них не работал. После переустановки _ с тем же кодом он работал. См. Мой собственный ответ. –

+0

Если что-то не так с пакетом, при переустановке пакета будет такая же ошибка, поскольку исходный код не изменился. – madSkillz

0

Попробуйте

php artisan cache:clear

php artisan clear-compiled

0

редактировать конфигурации/app.php

добавить это в поставщиков

Collective\Html\HtmlServiceProvider::class, 

и это в псевдонимы

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