2015-10-16 89 views
1

我有这样的:如何在{!!中调用变量!!}在Laravel 5.1中?

<title>{!!Config::get('lang_en.title')!!}</title> 

我想做的事情somethnig这样的:

<title>{!!Config::get('lang_{{$language}}.title')!!}</title> 

这可能吗?

+0

尝试<?php echo Config :: get('lang _'。$ language。'。title');?> –

+0

它没有工作.. –

回答

1

我认为你需要了解的东西一般就是里面{!!!!}什么是正常的PHP,而不是刀片模板。

所以,你会串连变量以同样的方式,你会在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简写htmlentities()

+0

谢谢你的回答。所以,这意味着** {{X}} **比** {!!}更安全。 X !!}** ? –

+1

@YasenIvanov不客气。对,那是正确的。但是当然,您不能将HTML放在{{}}中。我更新了答案,以显示在这种情况下你可以做什么 – andrewtweber

4

通过去除大括号试试这个

{!!Config::get('lang_' . $language . '.title')!!} 

和附加价值作为字符串

+0

这既不工作也不工作 –

+0

@YasenIvanov {!! Config: :get('lang_en.title')!!}它工作吗? –

+0

检查转换后的php文件中写入的内容。 – mimo