Laravel 5 и Освещение / HTML

Я пытаюсь использовать {{ HTML }} в моем проекте, однако, я сталкиваюсь с несколькими ошибками. Я исследовал в интернете эту проблему и считаю, что делаю правильные шаги, однако я продолжаю сталкиваться с одной и той же ошибкой, когда пытаюсь загрузить свою главную страницу.

FatalErrorException в... строке 9: класс 'HTML' не найден

Итак, что я сделал:

  • Отредактировано composer.json файл и добавил "illuminate/html": "5.*" под require {}

  • Бежать composer update (все вроде нормально)

  • Добавлено: providers => 'Illuminate\Html\HtmlServiceProvider', так же как

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

(Несмотря на то, что те, которые уже размещены под псевдонимами и поставщиками, выглядят следующим образом, кажется, что те, которые я добавил, выглядят совершенно иначе, чем остальные:

    Illuminate\Validation\ValidationServiceProvider::class,
    Illuminate\View\ViewServiceProvider::class,
    'Illuminate\Html\HtmlServiceProvider', // The one I added

   'URL'       => Illuminate\Support\Facades\URL::class,
    'Validator' => Illuminate\Support\Facades\Validator::class,
    'View'      => Illuminate\Support\Facades\View::class,
    'Form'      => 'Illuminate\Html\FormFacade', // I added
    'Html'      => 'Illuminate\Html\HtmlFacade', // I added

И вот версия моего фрагмента master.blade.php:

    <!DOCTYPE html>
    <html lang="en">
    <head>

        <meta charset = "UTF-8">

        <title></title>

        {{ HTML::script('js/jquery.js') }}      // Line 9
        {{ HTML::script('js/bootstrap.js') }}   // Line 10
        {{ HTML::style('css/bootstrap.js') }}   // Line 11

    </head>

Я получаю ошибку:

FatalErrorException в ### строке 9: класс 'HTML' не найден в

/Applications/MAMP/htdocs/laratest/storage/framework/views/### строка 9


Я получил пользу от нескольких учебных пособий, таких как этот на YouTube и Laracast. Я также нашел вопрос с тегом Solved, который решает ту же проблему, но не решает проблему в моем случае.

Редактировать: также меняется на {!! HTML !!} тоже не работает

5 ответов

Пакет Illuminate/HTML устарел

Использование:laravelcollective/html

composer require laravelcollective/html

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

в группе провайдеров:

Collective\Html\HtmlServiceProvider::class,

в группе псевдонимов:

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

Сначала фасады не правильные.

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

Фасад Html не HTML,

<!-- This won't work -->
{!! HTML::script('js/jquery.js') !!}

<!-- This should work -->
{!! Html::script('js/jquery.js') !!}

Или вы можете изменить ключ фасада на HTML и тогда вы можете использовать HTML::script(...),

'HTML'      => 'Illuminate\Html\HtmlFacade'

Попробуй это:

{!! HTML !!}

и не забыл composer dumpautoload,

Видите, если это поможет.

При переходе на 5.1 я обнаружил ту же проблему - похоже, класс HTML больше не поддерживает методы script и style.

Вместо этого используйте:

{{ URL::asset('yourassetpath') }}

Вы используете два разных псевдонима для одного фасада. правильные фасады

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

это должно работать

ps, начиная с laravel 5.1, вы должны использовать фасад Name::class

Другие вопросы по тегам