Laravel 5 / 5.1 - 从字符串渲染 blade 模板
Laravel 5 / 5.1 - render blade template from string
tl;博士:我在 Twig 中寻找类似 "template_from_string" 的东西。
长版(包括用例):
我有一个像 "Hello |NAME_OF_RECIPIENT| lorem ipsum ... more stuff.. more dynamic data..." 这样的字符串,我正在寻找一种使用 [=29= 将 |NAME_OF_RECIPIENT| 替换为动态数据的好方法] 的特性集,如指令和变量等。
我发现 Blade 的 compileString 方法,它 returns 编译的 php 脚本,很好,但我想要带有替换的字符串(即 "Hello Peter")。
Laravel 版本是 5.1.
Laravel 提供本地化服务。您可以使用此服务来实现您想要的,如果您决定在未来使用您的应用程序使用多语言,您可以轻松地做到这一点。看看 localization documentation.
您可以像 "Replacing Parameters In Language Lines" 部分中那样将数据传递给语言字符串。然后你使用 trans 辅助函数在 Blade 上显示它。
{{ trans('welcome', ['name' => 'Peter']) }}
在您的语言文件中:
return [
"message" => "Hello :name, you are :age years old!",
];
来自您的 blade 模板:
@lang('message', [
'name' => 'Peter',
'age' => 23,
])
将显示:
"Hello Peter, you are 23 years old!"
Laravel 将自动用提供的姓名替换 :name
,并用提供的年龄自动替换 age
。您可以对任意数量的变量执行此操作。
您可以在 Laravel localization docs 中阅读更多相关信息,但由于某种原因我找不到任何关于 @lang
函数的提及。
tl;博士:我在 Twig 中寻找类似 "template_from_string" 的东西。
长版(包括用例):
我有一个像 "Hello |NAME_OF_RECIPIENT| lorem ipsum ... more stuff.. more dynamic data..." 这样的字符串,我正在寻找一种使用 [=29= 将 |NAME_OF_RECIPIENT| 替换为动态数据的好方法] 的特性集,如指令和变量等。 我发现 Blade 的 compileString 方法,它 returns 编译的 php 脚本,很好,但我想要带有替换的字符串(即 "Hello Peter")。
Laravel 版本是 5.1.
Laravel 提供本地化服务。您可以使用此服务来实现您想要的,如果您决定在未来使用您的应用程序使用多语言,您可以轻松地做到这一点。看看 localization documentation.
您可以像 "Replacing Parameters In Language Lines" 部分中那样将数据传递给语言字符串。然后你使用 trans 辅助函数在 Blade 上显示它。
{{ trans('welcome', ['name' => 'Peter']) }}
在您的语言文件中:
return [
"message" => "Hello :name, you are :age years old!",
];
来自您的 blade 模板:
@lang('message', [
'name' => 'Peter',
'age' => 23,
])
将显示:
"Hello Peter, you are 23 years old!"
Laravel 将自动用提供的姓名替换 :name
,并用提供的年龄自动替换 age
。您可以对任意数量的变量执行此操作。
您可以在 Laravel localization docs 中阅读更多相关信息,但由于某种原因我找不到任何关于 @lang
函数的提及。