Laravel 5 和 Illuminate/html
Posted
技术标签:
【中文标题】Laravel 5 和 Illuminate/html【英文标题】:Laravel 5 and Illuminate/html 【发布时间】:2015-10-09 19:43:30 【问题描述】:我试图在我的项目中使用 html
,但是我遇到了几个错误。我在互联网上研究了这个问题,我相信我正在采取正确的步骤,但是,当我尝试加载我的母版页时,我总是遇到同样的错误。
FatalErrorException in ... 第 9 行:找不到类“HTML”
所以我做的是:
编辑composer.json
文件并在require
下添加"illuminate/html": "5.*"
运行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
的 sn-p 版本:
<!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: 找不到类“HTML” 在
/Applications/MAMP/htdocs/laratest/storage/framework/views/### 第 9 行
我受益于一些教程,例如 This one on YouTube 和 Laracast。我还发现了 Solved-tagged question,它正在解决相同的问题,但在我的情况下没有解决问题。
编辑:更改为 !! HTML !!
也不起作用
【问题讨论】:
我不认为这是您的确切问题,但您将外观别名为Html
,但将其寻址为HTML
。更重要的是(它仍然可能无法解决您的问题)您应该升级到由社区主导的Illumination/html 包的延续:laravelcollective/html
在代码中引用 html/HTML 时检查区分大小写的一致性(发生在我身上,是解决方法)
当我尝试 Html:....
时,我最终收到错误:1) Manager.php 第 137 行中的 ErrorException:call_user_func_array() 期望参数 1 是一个有效的回调,类 'Illuminate\ Auth\Guard' 没有方法“用户名”(查看:/Applications/MAMP/htdocs/laratest/resources/views/master.blade.php) 2) Manager.php 第 137 行中的 ErrorException : call_user_func_array() 期望参数 1 是一个有效的回调,类 'Illuminate\Auth\Guard' 没有方法 'username'
正如我所说,尝试将您的软件包更改为社区驱动的软件包(laravel 集体)-Illuminate/html 仅适用于 5.0,因此如果您使用的是 5.1,则无论如何都应该升级。
@alexrussell,所以你建议我删除我在 config>app.php (illuminate/html) 中添加的这 3 行,以及从 composer.json 中删除Illuminate/html;然后 composer install laravelcollective/html ?
【参考方案1】:
在迁移到 5.1 时,我发现了同样的问题 - HTML 类似乎不再支持脚本和样式方法。
改为:
URL::asset('yourassetpath')
【讨论】:
【参考方案2】:试试这个:
!! HTML !!
还有,别忘了composer dumpautoload
。
看看,如果这有帮助。
【讨论】:
是的,我试过!! HTML !!
。刚刚编辑了OP。抱歉写了!! HTML !
。【参考方案3】:
您对同一个外观使用了两个不同的别名。正确的立面是
'Form' => Illuminate\Support\Facades\Facade\FormFacade::class,
'Html' => Illuminate\Support\Facades\Facade\HtmlFacade::class,
这应该可以工作
附言从 laravel 5.1 开始,您应该使用 facadeName::class
【讨论】:
他试过这个:!! HTML ! 这是错误的。仔细看看。 @GauravDave,@elibyy。我试过了 !! HTML !!。我很抱歉误点击 OP。我刚刚编辑了它。我现在也尝试了:'Form' => Illuminate\Html\HtmlFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
,正如你所说,但仍然是同样的错误。
注意我写的是 Html 而不是 HTML 尝试在它们之间进行更改,因为 AFAIK 它区分大小写【参考方案4】:
首先,立面不正确。
'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 个标题下遇到了一堆错误。 1) Manager.php 第 137 行中的 ErrorException: call_user_func_array() 期望参数 1 是有效的回调,类 ' Illuminate\Auth\Guard' 没有方法 'username' 2) Manager.php 第 137 行中的 ErrorException:call_user_func_array() 期望参数 1 是有效的回调,类“Illuminate\Auth\Guard”没有方法“用户名”(查看:/Applications/MAMP/htdocs/laratest/resources/views/master.blade.php) 刀片模板中是否有这样的内容:Auth::username()
?【参考方案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,
【讨论】:
以上是关于Laravel 5 和 Illuminate/html的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 proengsoft/laravel-jsvalidation 和 Laravel 5 验证数组输入
Laravel 5.2 - 使用 composer 和 git bash 安装 laravel 时出错
通过composer和windows 10安装Laravel 5.6之后显示5.5.32 [重复]
LARAVEL 5.3,获取用户名和角色名(使用 Laravel 模型关系)