如何在 {!! !!} 在 Laravel 5.1 中?
How to call a variable within {!! !!} in Laravel 5.1?
我有这个:
<title>{!!Config::get('lang_en.title')!!}</title>
我想做这样的事情:
<title>{!!Config::get('lang_{{$language}}.title')!!}</title>
可能吗?
试试这个
{!!Config::get('lang_' . $language . '.title')!!}
删除大括号并将值附加为字符串
我认为您需要了解的一般事情是 {!!
!!}
中的任何内容都是正常的 PHP,而不是 Blade 模板。
所以您可以像在 PHP 中那样连接变量,正如您接受的答案所示:
'lang_' . $language . '.title'
基本上 {!!
X !!}
转换为 <?php echo
X ; ?>
并且 {{
X }}
转换为 <?php echo htmlentities(
X ); ?>
{{ }}
更安全,如果字符串包含用户输入,则应始终使用。如果字符串包含 HTML,则应使用 {!! !!}
。如果两者兼而有之呢?
那么你应该使用 {!! !!}
以便 HTML 起作用,但是用 e()
函数包装用户输入,例如
// In the controller
$string = '<span>' . e($username) . '</span>';
// In the view
{!! $string !!}
e()
只是 Laravel shorthand 对于 htmlentities()
.
我有这个:
<title>{!!Config::get('lang_en.title')!!}</title>
我想做这样的事情:
<title>{!!Config::get('lang_{{$language}}.title')!!}</title>
可能吗?
试试这个
{!!Config::get('lang_' . $language . '.title')!!}
删除大括号并将值附加为字符串
我认为您需要了解的一般事情是 {!!
!!}
中的任何内容都是正常的 PHP,而不是 Blade 模板。
所以您可以像在 PHP 中那样连接变量,正如您接受的答案所示:
'lang_' . $language . '.title'
基本上 {!!
X !!}
转换为 <?php echo
X ; ?>
并且 {{
X }}
转换为 <?php echo htmlentities(
X ); ?>
{{ }}
更安全,如果字符串包含用户输入,则应始终使用。如果字符串包含 HTML,则应使用 {!! !!}
。如果两者兼而有之呢?
那么你应该使用 {!! !!}
以便 HTML 起作用,但是用 e()
函数包装用户输入,例如
// In the controller
$string = '<span>' . e($username) . '</span>';
// In the view
{!! $string !!}
e()
只是 Laravel shorthand 对于 htmlentities()
.