laravel - Laravel:htmlspecialchars() 期望参数 1 是字符串,带有锚标记文本?
问题描述
第一次使用 Laravel,我已经下载了一个项目。我得到这个错误htmlspecialchars() Expects parameter 1 to be string, array given I've found it is due to the following:
@guest
<li class="nav-item"><a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a></li>
@if (Route::has('register'))
<li class="nav-item"><a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a></li>
@endif
如果我删除{{ __('Login') }}
并且{{ __('Register') }}
错误被删除并且我可以查看页面?我该如何解决?此错误的原因可能是什么?
解决方案
错误是说这__('Login')
不是string
. 这意味着它可能是一个翻译键数组,因为如果翻译不可用__()
,默认情况下返回一个(传递的参数)。string
在里面resources/lang/{lang}
,有一个文件叫做login.php
:
return [
'login' => 'Login',
'register' => 'Register'
];
要访问此翻译,您需要使用正确的语法:
<li class="nav-item"><a class="nav-link" href="{{ route('login') }}">{{ __('login.login') }}</a></li>
<li class="nav-item"><a class="nav-link" href="{{ route('register') }}">{{ __('login.register') }}</a></li>
传递给__()
函数的字符串应该首先指定文件,然后是任意数量的键(因为嵌套数组是有效的)。在这两种情况下,login
是文件,后跟键login
和register
。
此结构应在所有resources/lang/{lang}/login.php
文件中重复,否则将使用默认语言环境(在大多数情况下en
)。
完整的文档可以在这里找到:https ://laravel.com/docs/7.x/localization
推荐阅读
- sql - SQL - FOR XML - 将几乎相同的元素放在一起
- azure - 生成可以在 Azure 中针对 RSA 签名密钥进行验证的令牌
- asp.net - HTML5 标签被 UmbracoCMS 中的富文本框删除
- sql - 如何使用 Sql Query 从 Excel 中的同一列中获取多条记录
- sonarqube - Sonarqube-7.9.1 HeapDumpOnOutOfMemoryError
- android - 统一构建错误。[无法安装以下 Android SDK 软件包,因为某些许可证尚未被接受。]
- python - 计算文本中特定因素的程序,例如“气候金融”
- javascript - 避免在promise链中调用next()时未创建promise
- javascript - Tiptap 中的 SetContent 删除样式
- html - 如何避免引导程序 4 为所有列设置相同的高度?