Laravel 5 / 5.1 - 从字符串

时间:2015-09-19 14:37:00

标签: laravel blade

TL;博士:我正在寻找像" template_from_string"在Twig。

长版(包括用例):

我有一个类似" Hello | NAME_OF_RECIPIENT | lorem ipsum ...更多东西..更多动态数据......"我正在寻找一种很好的方法,使用Blade的功能集,如指令和变量等,用动态数据替换 | NAME_OF_RECIPIENT | 。 我找到了Blade的compileString方法,该方法返回已编译的php脚本,很好,但我希望字符串有替换(即" Hello Peter")。

Laravel版本是5.1。

2 个答案:

答案 0 :(得分:3)

Laravel提供本地化服务。您可以使用此服务来实现您想要的功能,如果您决定将来使用多种语言,您可以轻松实现这一目标。看看localization documentation

您可以将数据传递到语言字符串,就像在“替换语言行中的参数”部分中所做的那样。然后使用 trans 帮助函数在Blade上显示它。

{{ trans('welcome', ['name' => 'Peter']) }}

答案 1 :(得分:1)

在您的语言文件中:

return [
    "message" => "Hello :name, you are :age years old!",
];

从您的刀片模板:

@lang('message', [
    'name' => 'Peter',
    'age'  => 23,
])

将显示:

"Hello Peter, you are 23 years old!"

Laravel将使用提供的名称自动替换:name,并使用提供的年龄自动替换age。您可以为任何数量的变量执行此操作。

您可以在Laravel localization docs中详细了解它,但由于某种原因,我找不到任何@lang功能。