如何在 {!! !!} 在 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().