Laravel 5和Illuminate / html

时间:2015-07-20 15:37:12

标签: html laravel laravel-5

我正在尝试在我的项目中使用{{ HTML }}但是我遇到了几个错误。我在互联网上研究了这个问题,我相信我正在做正确的步骤,但是,当我尝试加载我的母版页时,我仍然遇到同样的错误。

  

第9行中的FatalErrorException:Class' 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>

我得到的错误是:

  ###第9行中的

FatalErrorException:   课程&#39; HTML&#39;未找到   在

     

/ Applications / MAMP / htdocs / laratest / storage / framework / views / ### line 9

我从This one on YouTubeLaracast等几个教程中受益匪浅。我还发现Solved-tagged question正在解决同一问题,但在我的案例中没有解决问题。

编辑:同时更改为{!! HTML !!}无效

5 个答案:

答案 0 :(得分:2)

不推荐使用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,

答案 1 :(得分:1)

首先外墙不正确。

'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'

答案 2 :(得分:0)

在迁移到5.1时,我发现了同样的问题 - 似乎HTML类不再支持脚本和样式方法。

相反,请使用:

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

答案 3 :(得分:0)

试试这个:

{!! HTML !!}

并且,不要忘记composer dumpautoload

看,如果有帮助。

答案 4 :(得分:0)

您在同一个立面上使用两个不同的别名。正确的外墙是

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

这应该有效

P.S。从laravel 5.1开始,你应该使用facadeName :: class